Allow appending values to a property instead of overriding the previous values of property. Currently, we have /delete-node/ and /delete-property/, but lack /append-property/. Hence we end up having to repeat all existing values when appending to a property (e.g. see [1] appending to clocks from [2]). This functionality is also important for creating a device tree based implementation to support different types of addon-boards such as mikroBUS, Grove [3], etc. Open items - Better tests: I only started the work today, so well, I still don't have a good picture of how to properly write tests. - Appending to non-existent property: Currently am just adding a new property if not found. Not sure if this is the desired behaviour. - Incompatible values: Not sure how to handle when trying to append incompatible values. [3] https://lore.kernel.org/linux-arm-kernel/20240702164403.29067-1-afd@xxxxxx/ [2] https://elixir.bootlin.com/linux/latest/source/arch/arm64/boot/dts/renesas/r8a77951-salvator-xs.dts#L39 [1] https://elixir.bootlin.com/linux/latest/source/arch/arm64/boot/dts/renesas/r8a77951.dtsi#L3334 Signed-off-by: Ayush Singh <ayush@xxxxxxxxxxxxxxx> --- Ayush Singh (2): dtc: Add /append-property/ tests: Add test for append-property dtc-lexer.l | 7 +++++++ dtc-parser.y | 6 ++++++ dtc.h | 3 +++ livetree.c | 30 +++++++++++++++++++++++++----- tests/run_tests.sh | 3 +++ tests/test_tree1_append.dts | 21 +++++++++++++++++++++ 6 files changed, 65 insertions(+), 5 deletions(-) --- base-commit: 99031e3a4a6e479466ae795790b44727434ca27d change-id: 20240827-append-f614fe3261f9 Best regards, -- Ayush Singh <ayush@xxxxxxxxxxxxxxx>