cmd/fdt: support single value replacement within an array
authorHannes Schmelzer <Hannes.Schmelzer@br-automation.com>
Tue, 30 May 2017 13:05:44 +0000 (15:05 +0200)
committerSimon Glass <sjg@chromium.org>
Fri, 9 Jun 2017 19:45:34 +0000 (13:45 -0600)
commit9620d87259572ef21f0df60988d9a932ca673779
tree1ecdbe9525d593257712ff1c24b2f26accac925e
parentaafbe82fb6ffc233f0db57b675c2577cf37c846b
cmd/fdt: support single value replacement within an array

With this commit we can modify single values within an array of a dts
property.

This is useful if we have for example a pwm-backlight where we want to
modifiy the pwm frequency per u-boot script.

The pwm is described in dts like this:

backlight {
pwms = <0x0000002b 0x00000000 0x004c4b40>;
};

For changing the frequency, here the 3rd parameter, we simply type:

fdt set /backlight pwms <? ? 0x1E8480>;

For doing all this we:
- backup the property content into our 'SCRATCHPAD'
- only modify the array-cell if the new content doesn't start with '?'

Signed-off-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/fdt.c