Merge branch 'clk-rate-range' into clk-next
[linux-block.git] / Documentation / devicetree / changesets.rst
CommitLineData
afb61205
MCC
1.. SPDX-License-Identifier: GPL-2.0
2
7248213c
RH
3=====================
4Devicetree Changesets
5=====================
afb61205 6
7248213c 7A Devicetree changeset is a method which allows one to apply changes
201c910b
PA
8in the live tree in such a way that either the full set of changes
9will be applied, or none of them will be. If an error occurs partway
10through applying the changeset, then the tree will be rolled back to the
11previous state. A changeset can also be removed after it has been
12applied.
13
14When a changeset is applied, all of the changes get applied to the tree
15at once before emitting OF_RECONFIG notifiers. This is so that the
16receiver sees a complete and consistent state of the tree when it
17receives the notifier.
18
19The sequence of a changeset is as follows.
20
211. of_changeset_init() - initializes a changeset
22
232. A number of DT tree change calls, of_changeset_attach_node(),
afb61205
MCC
24 of_changeset_detach_node(), of_changeset_add_property(),
25 of_changeset_remove_property, of_changeset_update_property() to prepare
26 a set of changes. No changes to the active tree are made at this point.
27 All the change operations are recorded in the of_changeset 'entries'
28 list.
201c910b 29
63b77d6d 303. of_changeset_apply() - Apply the changes to the tree. Either the
afb61205
MCC
31 entire changeset will get applied, or if there is an error the tree will
32 be restored to the previous state. The core ensures proper serialization
33 through locking. An unlocked version __of_changeset_apply is available,
34 if needed.
201c910b
PA
35
36If a successfully applied changeset needs to be removed, it can be done
63b77d6d 37with of_changeset_revert().