of/overlay: Introduce DT overlay support
authorPantelis Antoniou <pantelis.antoniou@konsulko.com>
Tue, 28 Oct 2014 20:35:58 +0000 (22:35 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 17 Feb 2015 02:56:14 +0000 (11:56 +0900)
commit0327df42b40c24073ecd7fb2b81e1511f2f1412d
tree18eb1f23036c763f692870f6bffa5925d8aefb08
parent1ee737348e46756b420ca9cc1c18afc6e6df9409
of/overlay: Introduce DT overlay support

Overlays are a method to dynamically modify part of the kernel's
device tree with dynamically loaded data. Add the core functionality to
parse, apply and remove an overlay changeset. The core functionality
takes care of managing the overlay data format and performing the add
and remove. Drivers are expected to use the overlay functionality to
support custom expansion busses commonly found on consumer development
boards like the BeagleBone or Raspberry Pi.

The overlay code uses CONFIG_OF_DYNAMIC changesets to perform the low
level work of modifying the devicetree.

Documentation about internal and APIs is provided in
Documentation/devicetree/overlay-notes.txt

v2:
- Switch from __of_node_alloc() to __of_node_dup()
- Documentation fixups
- Remove 2-pass processing of properties
- Remove separate ov_lock; just use the DT mutex.
v1:
- Drop delete capability using '-' prefix. The '-' prefixed names
are valid properties and nodes and there is no need for it just yet.
- Do not update special properties - name & phandle ones.
- Change order of node attachment, so that the special property update
works.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
(cherry picked from commit 7518b5890d8ac366faa2326ce2356ef6392ce63d)
Signed-off-by: Mark Brown <broonie@kernel.org>
Conflicts:
drivers/of/Makefile
Documentation/devicetree/overlay-notes.txt [new file with mode: 0644]
drivers/of/Kconfig
drivers/of/Makefile
drivers/of/overlay.c [new file with mode: 0644]
include/linux/of.h