[v8,0/8] Device Tree Overlays - 8th time's the charm
mbox series

Message ID 1414528565-10907-1-git-send-email-pantelis.antoniou@konsulko.com
Headers show
Series
  • Device Tree Overlays - 8th time's the charm
Related show

Message

Pantelis Antoniou Oct. 28, 2014, 8:35 p.m. UTC
The following patchset introduces Device Tree overlays, a method
of dynamically altering the kernel's live Device Tree, along with
a generic interface to use it in a board agnostic manner.

It is against linux mainline as of today 28/10/2014
"f7e87a44ef60ad379e39b45437604141453bf0ec"
Merge tag 'media/v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

It relies on the following previously submitted patches/patchsets:

* configfs: Implement binary attributes (v2)

To compile overlays you need the DTC compiler patch

* "dtc: Dynamic symbols & fixup support (v3)"

The full patchset is applied to the following tree/branch:

git:    git@github.com:pantoniou/linux-beagle-track-mainline.git
branch: dt-ng/bbb
http:   https://github.com/pantoniou/linux-beagle-track-mainline/tree/dt-ng4/gcl-bbb

Changes since V7:
* Using the mainline resolver with the updated local fixups format.
* 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.

Changes since V6:
* Now using the updated transaction API.

Changes since V5:
* Rely on transactions for affecting changes to the live tree.
This makes the patchset considerably smaller, and easier to grok.
* Removed the internal API, simplyfing the interface.

Changes since V4:
* New API of_overlay_create/destroy being able to support stacked
overlays correctly.
* Removed use of notifiers internally.
* Removed own-grown bus handler notifiers; using already in-place DT
notification infrastructure.
* Split SPI notifier patch to one patch of generic changes and one
for DT overlay notifier.
* Removed unused overlay depth feature.
* Updated documentation.
* Moved configfs based interface to using the new API.
* Added overlay removal stacking tests.

Changes since V3:
* Added overlay self-tests.
* Fix bug in of_init_overlay_info (wrong sizeof)
* Platform bus handler handles parent_pdev == NULL
* of_resolve fixes according to comments by robh
 + changed if (foo == NULL) to if (!foo)
 + changed if (foo != NULL) to if (foo)
 + drivers/of/Kconfig added dep on OF && !SPARC
 + convert to using be32_to_cpup
 + u32 -> __be32 when modifying property values
 + cosmetic fixes

Changes since V2:
* Use of a configfs board agnostic overlay method
* Use of per bus handlers instead of hardcoded behaviour
* Optional target-path overlay target, which allows one to use standard
DTBs without resolution options.

Changes since V1:

* Removal of any bits related to a specific board (beaglebone).
* Introduced a platform agnostic interface using /proc/device-tree-overlay
* Various bug fixes related to i2c device handling have been squashed in.

Pantelis Antoniou (9):
 OF: Introduce Device Tree resolve support.
 OF: Introduce DT overlay support.
 OF: selftest: Add overlay self-test support.
 OF: DT-Overlay configfs interface
 OF: platform: Add OF notifier handler
 of: i2c: Export single device registration method
 OF: i2c: Add OF notifier handler
 of: spi: Export single device registration method and accessors
 OF: spi: Add OF notifier handler

Pantelis Antoniou (8):
  OF: Introduce DT overlay support. (v2)
  OF: selftest: Add overlay self-test support. (v2)
  OF: DT-Overlay configfs interface (v2)
  OF: platform: Add OF notifier handler
  of: i2c: Export single device registration method
  OF: i2c: Add OF notifier handler
  of: spi: Export single device registration method and accessors
  OF: spi: Add OF notifier handler

 Documentation/devicetree/bindings/selftest.txt |  14 +
 Documentation/devicetree/overlay-notes.txt     | 137 ++++++
 drivers/base/platform.c                        |  18 +-
 drivers/i2c/i2c-core.c                         | 178 +++++--
 drivers/of/Kconfig                             |  14 +
 drivers/of/Makefile                            |   2 +
 drivers/of/configfs.c                          | 340 +++++++++++++
 drivers/of/overlay.c                           | 656 +++++++++++++++++++++++++
 drivers/of/platform.c                          |  78 +++
 drivers/of/selftest.c                          | 481 ++++++++++++++++++
 drivers/of/testcase-data/testcases.dts         |  16 +
 drivers/of/testcase-data/tests-overlay.dtsi    | 180 +++++++
 drivers/spi/spi.c                              | 334 +++++++++----
 include/linux/i2c.h                            |  10 +
 include/linux/of.h                             |  31 ++
 include/linux/of_platform.h                    |  10 +
 16 files changed, 2351 insertions(+), 148 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/selftest.txt
 create mode 100644 Documentation/devicetree/overlay-notes.txt
 create mode 100644 drivers/of/configfs.c
 create mode 100644 drivers/of/overlay.c
 create mode 100644 drivers/of/testcase-data/tests-overlay.dtsi