|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14 |
|
| #
fd958299 |
| 19-Mar-2025 |
Ernest Van Hoecke <[email protected]> |
of: Add of_property_read_u16_index
There is an of_property_read_u32_index and of_property_read_u64_index. This patch adds a similar helper for u16.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoeck
of: Add of_property_read_u16_index
There is an of_property_read_u32_index and of_property_read_u64_index. This patch adds a similar helper for u16.
Signed-off-by: Ernest Van Hoecke <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Rob Herring (Arm) <[email protected]> Reviewed-by: Charles Keepax <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc7 |
|
| #
590f5d67 |
| 12-Mar-2025 |
Rob Herring (Arm) <[email protected]> |
of: Move of_prop_val_eq() next to the single user
There's only a single user of of_prop_val_eq(), so move it to overlay.c. This removes one case of exposing struct property outside of the DT code.
of: Move of_prop_val_eq() next to the single user
There's only a single user of of_prop_val_eq(), so move it to overlay.c. This removes one case of exposing struct property outside of the DT code.
Signed-off-by: "Rob Herring (Arm)" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc6, v6.14-rc5 |
|
| #
2ac95560 |
| 25-Feb-2025 |
Zijun Hu <[email protected]> |
of: Align macro MAX_PHANDLE_ARGS with NR_FWNODE_REFERENCE_ARGS
Macro NR_FWNODE_REFERENCE_ARGS defines the maximal argument count for firmware node reference, and MAX_PHANDLE_ARGS defines the maximal
of: Align macro MAX_PHANDLE_ARGS with NR_FWNODE_REFERENCE_ARGS
Macro NR_FWNODE_REFERENCE_ARGS defines the maximal argument count for firmware node reference, and MAX_PHANDLE_ARGS defines the maximal argument count for DT node reference, both have the same value now.
To void argument count inconsistency between firmware and DT, simply align both macros by '#define MAX_PHANDLE_ARGS NR_FWNODE_REFERENCE_ARGS'.
Signed-off-by: Zijun Hu <[email protected]> Reviewed-by: Sakari Ailus <[email protected]> Acked-by: Andy Shevchenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc4, v6.14-rc3, v6.14-rc2 |
|
| #
8d3bbe43 |
| 05-Feb-2025 |
Biju Das <[email protected]> |
of: base: Add of_get_available_child_by_name()
There are lot of drivers using of_get_child_by_name() followed by of_device_is_available() to find the available child node by name for a given parent.
of: base: Add of_get_available_child_by_name()
There are lot of drivers using of_get_child_by_name() followed by of_device_is_available() to find the available child node by name for a given parent. Provide a helper for these users to simplify the code.
Suggested-by: Geert Uytterhoeven <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Biju Das <[email protected]> Reviewed-by: Simon Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc1, v6.13 |
|
| #
72d1c182 |
| 14-Jan-2025 |
Zijun Hu <[email protected]> |
of: Do not expose of_alias_scan() and correct its comments
of_alias_scan() has no external callers and returns void. Do not expose it and delete return value descriptions in its comments.
Signed-of
of: Do not expose of_alias_scan() and correct its comments
of_alias_scan() has no external callers and returns void. Do not expose it and delete return value descriptions in its comments.
Signed-off-by: Zijun Hu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc7 |
|
| #
c141ecc3 |
| 09-Jan-2025 |
Rob Herring (Arm) <[email protected]> |
of: Warn when of_property_read_bool() is used on non-boolean properties
The use of of_property_read_bool() for non-boolean properties is deprecated. The primary use of it was to test property presen
of: Warn when of_property_read_bool() is used on non-boolean properties
The use of of_property_read_bool() for non-boolean properties is deprecated. The primary use of it was to test property presence, but that has been replaced in favor of of_property_present(). With those uses now fixed, add a warning to discourage new ones.
Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
| #
bb391410 |
| 09-Jan-2025 |
Rob Herring (Arm) <[email protected]> |
device property: Split property reading bool and presence test ops
The fwnode/device property API currently implement (fwnode|device)_property_read_bool() with (fwnode|device)_property_present(). Th
device property: Split property reading bool and presence test ops
The fwnode/device property API currently implement (fwnode|device)_property_read_bool() with (fwnode|device)_property_present(). That does not allow having different behavior depending on the backend.
Specifically, the usage of (fwnode|device)_property_read_bool() on non-boolean properties is deprecated on DT. In order to add a warning on this deprecated use, these 2 APIs need separate ops for the backend.
Acked-by: Greg Kroah-Hartman <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Acked-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7 |
|
| #
1fcc67e3 |
| 06-Nov-2024 |
Chen-Yu Tsai <[email protected]> |
of: base: Add for_each_child_of_node_with_prefix()
There are cases where drivers would go through child device nodes and operate on only the ones whose node name starts with a given prefix.
Provide
of: base: Add for_each_child_of_node_with_prefix()
There are cases where drivers would go through child device nodes and operate on only the ones whose node name starts with a given prefix.
Provide a helper for these users. This will mainly be used in a subsequent patch that implements a hardware component prober for I2C busses.
Signed-off-by: Chen-Yu Tsai <[email protected]> Reviewed-by: Rob Herring (Arm) <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
| #
81de291d |
| 06-Nov-2024 |
Chen-Yu Tsai <[email protected]> |
of: dynamic: Add of_changeset_update_prop_string
Add a helper function to add string property updates to an OF changeset. This is similar to of_changeset_add_prop_string(), but instead of adding the
of: dynamic: Add of_changeset_update_prop_string
Add a helper function to add string property updates to an OF changeset. This is similar to of_changeset_add_prop_string(), but instead of adding the property (and failing if it exists), it will update the property.
This shall be used later in the DT hardware prober.
Signed-off-by: Chen-Yu Tsai <[email protected]> Reviewed-by: Rob Herring (Arm) <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3 |
|
| #
9c63fea9 |
| 10-Oct-2024 |
Rob Herring (Arm) <[email protected]> |
of: Constify struct property pointers
Most accesses to struct property do not modify it, so constify struct property pointers where ever possible in the DT core code.
Reviewed-by: Krzysztof Kozlows
of: Constify struct property pointers
Most accesses to struct property do not modify it, so constify struct property pointers where ever possible in the DT core code.
Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
| #
ec8c2329 |
| 10-Oct-2024 |
Rob Herring (Arm) <[email protected]> |
of: Constify struct device_node function arguments
Functions which don't change the refcount or otherwise modify struct device_node can make struct device_node const.
Reviewed-by: Krzysztof Kozlows
of: Constify struct device_node function arguments
Functions which don't change the refcount or otherwise modify struct device_node can make struct device_node const.
Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1 |
|
| #
9722c3b6 |
| 24-Jul-2024 |
Luca Ceresoli <[email protected]> |
of: remove internal arguments from of_property_for_each_u32()
The of_property_for_each_u32() macro needs five parameters, two of which are primarily meant as internal variables for the macro itself
of: remove internal arguments from of_property_for_each_u32()
The of_property_for_each_u32() macro needs five parameters, two of which are primarily meant as internal variables for the macro itself (in the for() clause). Yet these two parameters are used by a few drivers, and this can be considered misuse or at least bad practice.
Now that the kernel uses C11 to build, these two parameters can be avoided by declaring them internally, thus changing this pattern:
struct property *prop; const __be32 *p; u32 val;
of_property_for_each_u32(np, "xyz", prop, p, val) { ... }
to this:
u32 val;
of_property_for_each_u32(np, "xyz", val) { ... }
However two variables cannot be declared in the for clause even with C11, so declare one struct that contain the two variables we actually need. As the variables inside this struct are not meant to be used by users of this macro, give the struct instance the noticeable name "_it" so it is visible during code reviews, helping to avoid new code to use it directly.
Most usages are trivially converted as they do not use those two parameters, as expected. The non-trivial cases are:
- drivers/clk/clk.c, of_clk_get_parent_name(): easily doable anyway - drivers/clk/clk-si5351.c, si5351_dt_parse(): this is more complex as the checks had to be replicated in a different way, making code more verbose and somewhat uglier, but I refrained from a full rework to keep as much of the original code untouched having no hardware to test my changes
All the changes have been build tested. The few for which I have the hardware have been runtime-tested too.
Reviewed-by: Andre Przywara <[email protected]> # drivers/clk/sunxi/clk-simple-gates.c, drivers/clk/sunxi/clk-sun8i-bus-gates.c Acked-by: Bartosz Golaszewski <[email protected]> # drivers/gpio/gpio-brcmstb.c Acked-by: Nicolas Ferre <[email protected]> # drivers/irqchip/irq-atmel-aic-common.c Acked-by: Jonathan Cameron <[email protected]> # drivers/iio/adc/ti_am335x_adc.c Acked-by: Uwe Kleine-König <[email protected]> # drivers/pwm/pwm-samsung.c Acked-by: Richard Leitner <[email protected]> # drivers/usb/misc/usb251xb.c Acked-by: Mark Brown <[email protected]> # sound/soc/codecs/arizona.c Reviewed-by: Richard Fitzgerald <[email protected]> # sound/soc/codecs/arizona.c Acked-by: Michael Ellerman <[email protected]> # arch/powerpc/sysdev/xive/spapr.c Acked-by: Stephen Boyd <[email protected]> # clk Signed-off-by: Luca Ceresoli <[email protected]> Acked-by: Lee Jones <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2 |
|
| #
f2b388d6 |
| 27-May-2024 |
Herve Codina <[email protected]> |
of: dynamic: Introduce of_changeset_add_prop_bool()
APIs to add some properties in a changeset exist but nothing to add a DT boolean property (i.e. a property without any values).
Fill this lack wi
of: dynamic: Introduce of_changeset_add_prop_bool()
APIs to add some properties in a changeset exist but nothing to add a DT boolean property (i.e. a property without any values).
Fill this lack with of_changeset_add_prop_bool().
Signed-off-by: Herve Codina <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
| #
6badc62f |
| 27-May-2024 |
Herve Codina <[email protected]> |
of: dynamic: Constify parameter in of_changeset_add_prop_string_array()
The str_array parameter has no reason to be an un-const array. Indeed, elements of the 'str_array' array are not changed by th
of: dynamic: Constify parameter in of_changeset_add_prop_string_array()
The str_array parameter has no reason to be an un-const array. Indeed, elements of the 'str_array' array are not changed by the code.
Constify the 'str_array' array parameter. With this const qualifier added, the following construction is allowed: static const char * const tab_str[] = { "string1", "string2" }; of_changeset_add_prop_string_array(..., tab_str, ARRAY_SIZE(tab_str));
Signed-off-by: Herve Codina <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring (Arm) <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6 |
|
| #
34af4554 |
| 25-Feb-2024 |
Jonathan Cameron <[email protected]> |
of: Introduce for_each_*_child_of_node_scoped() to automate of_node_put() handling
To avoid issues with out of order cleanup, or ambiguity about when the auto freed data is first instantiated, do it
of: Introduce for_each_*_child_of_node_scoped() to automate of_node_put() handling
To avoid issues with out of order cleanup, or ambiguity about when the auto freed data is first instantiated, do it within the for loop definition.
The disadvantage is that the struct device_node *child variable creation is not immediately obvious where this is used. However, in many cases, if there is another definition of struct device_node *child; the compiler / static analysers will notify us that it is unused, or uninitialized.
Note that, in the vast majority of cases, the _available_ form should be used and as code is converted to these scoped handers, we should confirm that any cases that do not check for available have a good reason not to.
Signed-off-by: Jonathan Cameron <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
show more ...
|
| #
9448e55d |
| 25-Feb-2024 |
Jonathan Cameron <[email protected]> |
of: Add cleanup.h based auto release via __free(device_node) markings
The recent addition of scope based cleanup support to the kernel provides a convenient tool to reduce the chances of leaking ref
of: Add cleanup.h based auto release via __free(device_node) markings
The recent addition of scope based cleanup support to the kernel provides a convenient tool to reduce the chances of leaking reference counts where of_node_put() should have been called in an error path.
This enables struct device_node *child __free(device_node) = NULL;
for_each_child_of_node(np, child) { if (test) return test; }
with no need for a manual call of of_node_put(). A following patch will reduce the scope of the child variable to the for loop, to avoid an issues with ordering of autocleanup, and make it obvious when this assigned a non NULL value.
In this simple example the gains are small but there are some very complex error handling cases buried in these loops that will be greatly simplified by enabling early returns with out the need for this manual of_node_put() call.
Note that there are coccinelle checks in scripts/coccinelle/iterators/for_each_child.cocci to detect a failure to call of_node_put(). This new approach does not cause false positives. Longer term we may want to add scripting to check this new approach is done correctly with no double of_node_put() calls being introduced due to the auto cleanup. It may also be useful to script finding places this new approach is useful.
Signed-off-by: Jonathan Cameron <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc5 |
|
| #
7b937cc2 |
| 17-Feb-2024 |
Frank Rowand <[email protected]> |
of: Create of_root if no dtb provided by firmware
When enabling CONFIG_OF on a platform where 'of_root' is not populated by firmware, we end up without a root node. In order to apply overlays and cr
of: Create of_root if no dtb provided by firmware
When enabling CONFIG_OF on a platform where 'of_root' is not populated by firmware, we end up without a root node. In order to apply overlays and create subnodes of the root node, we need one. Create this root node by unflattening an empty builtin dtb.
If firmware provides a flattened device tree (FDT) then the FDT is unflattened via setup_arch(). Otherwise, the call to unflatten(_and_copy)?_device_tree() will create an empty root node.
We make of_have_populated_dt() return true only if the DTB was loaded by firmware so that existing callers don't change behavior after this patch. The call in the of platform code is removed because it prevents overlays from creating platform devices when the empty root node is used.
[[email protected]: Update of_have_populated_dt() to treat this empty dtb as not populated. Drop setup_of() initcall]
Signed-off-by: Frank Rowand <[email protected]> Link: https://lore.kernel.org/r/[email protected] Cc: Rob Herring <[email protected]> Signed-off-by: Stephen Boyd <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
show more ...
|
| #
ad8ee969 |
| 03-Mar-2024 |
Bartosz Golaszewski <[email protected]> |
of: make for_each_property_of_node() available to to !OF
for_each_property_of_node() is a macro and so doesn't have a stub inline function for !OF. Move it out of the relevant #ifdef to make it avai
of: make for_each_property_of_node() available to to !OF
for_each_property_of_node() is a macro and so doesn't have a stub inline function for !OF. Move it out of the relevant #ifdef to make it available to all users.
Fixes: 611cad720148 ("dt: add of_alias_scan and of_alias_get_id") Signed-off-by: Bartosz Golaszewski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7, v6.7-rc6 |
|
| #
1ac8205f |
| 14-Dec-2023 |
Christophe Leroy <[email protected]> |
of: Reimplement of_machine_is_compatible() using of_machine_compatible_match()
of_machine_compatible_match() works with a table of strings. of_machine_is_compatible() is a simplier version with only
of: Reimplement of_machine_is_compatible() using of_machine_compatible_match()
of_machine_compatible_match() works with a table of strings. of_machine_is_compatible() is a simplier version with only one string.
Re-implement of_machine_is_compatible() by setting a table of strings with a single string then using of_machine_compatible_match().
Suggested-by: Rob Herring <[email protected]> Signed-off-by: Christophe Leroy <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://msgid.link/[email protected]
show more ...
|
| #
cefdb366 |
| 14-Dec-2023 |
Michael Ellerman <[email protected]> |
of: Change of_machine_is_compatible() to return bool
of_machine_is_compatible() currently returns a positive integer if it finds a match. However none of the callers ever check the value, they all t
of: Change of_machine_is_compatible() to return bool
of_machine_is_compatible() currently returns a positive integer if it finds a match. However none of the callers ever check the value, they all treat it as a true/false.
So change of_machine_is_compatible() to return bool, which will allow the implementation to be changed in a subsequent patch.
Suggested-by: Rob Herring <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://msgid.link/[email protected]
show more ...
|
| #
c029b22f |
| 14-Dec-2023 |
Michael Ellerman <[email protected]> |
of: Add of_machine_compatible_match()
We have of_machine_is_compatible() to check if a machine is compatible with a single compatible string. However some code is able to support multiple compatible
of: Add of_machine_compatible_match()
We have of_machine_is_compatible() to check if a machine is compatible with a single compatible string. However some code is able to support multiple compatible boards, and so wants to check for one of many compatible strings.
So add of_machine_compatible_match() which takes a NULL terminated array of compatible strings to check against the root node's compatible property.
Compared to an open coded match this is slightly more self documenting, and also avoids the caller needing to juggle the root node either directly or via of_find_node_by_path().
Signed-off-by: Christophe Leroy <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://msgid.link/[email protected]
show more ...
|
| #
26ea8511 |
| 29-Jan-2024 |
Krzysztof Kozlowski <[email protected]> |
of: Add of_phandle_args_equal() helper
Add a helper comparing two "struct of_phandle_args" to avoid reinventing the wheel.
Reviewed-by: Philipp Zabel <[email protected]> Acked-by: Rob Herring
of: Add of_phandle_args_equal() helper
Add a helper comparing two "struct of_phandle_args" to avoid reinventing the wheel.
Reviewed-by: Philipp Zabel <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Philipp Zabel <[email protected]>
show more ...
|
| #
28c5d4e4 |
| 10-Jan-2024 |
Kuninori Morimoto <[email protected]> |
of: Add for_each_reserved_child_of_node()
We would like to use for_each loop for status = "reserved" nodes. Add for_each_reserved_child_of_node() for it.
Signed-off-by: Kuninori Morimoto <kuninori.
of: Add for_each_reserved_child_of_node()
We would like to use for_each loop for status = "reserved" nodes. Add for_each_reserved_child_of_node() for it.
Signed-off-by: Kuninori Morimoto <[email protected]> Tested-by: Yusuke Goda <[email protected]> Reviewed-by: Geert Uytterhoeven <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Geert Uytterhoeven <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2, v6.6-rc1 |
|
| #
cf60ce92 |
| 04-Sep-2023 |
Pavel Pisa <[email protected]> |
of: overlay: Fix of_overlay_fdt_apply prototype when !CONFIG_OF_OVERLAY
The of_overlay_fdt_apply has been changed but when CONFIG_OF_OVERLAY support is not configured then old stub prototype is decl
of: overlay: Fix of_overlay_fdt_apply prototype when !CONFIG_OF_OVERLAY
The of_overlay_fdt_apply has been changed but when CONFIG_OF_OVERLAY support is not configured then old stub prototype is declared by of.h header.
Signed-off-by: Pavel Pisa <[email protected]> Fixes: 47284862bfc7 ("of: overlay: Extend of_overlay_fdt_apply() to specify the target node") Acked-by: Marc Kleine-Budde <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
show more ...
|
|
Revision tags: v6.5, v6.5-rc7 |
|
| #
47284862 |
| 15-Aug-2023 |
Lizhi Hou <[email protected]> |
of: overlay: Extend of_overlay_fdt_apply() to specify the target node
Currently, in an overlay fdt fragment, it needs to specify the exact location in base DT. In another word, when the fdt fragment
of: overlay: Extend of_overlay_fdt_apply() to specify the target node
Currently, in an overlay fdt fragment, it needs to specify the exact location in base DT. In another word, when the fdt fragment is generated, the base DT location for the fragment is already known.
There is new use case that the base DT location is unknown when fdt fragment is generated. For example, the add-on device provide a fdt overlay with its firmware to describe its downstream devices. Because it is add-on device which can be plugged to different systems, its firmware will not be able to know the overlay location in base DT. Instead, the device driver will load the overlay fdt and apply it to base DT at runtime. In this case, of_overlay_fdt_apply() needs to be extended to specify the target node for device driver to apply overlay fdt. int overlay_fdt_apply(..., struct device_node *base);
Signed-off-by: Lizhi Hou <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
show more ...
|