Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d8880a0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull devicetree updates from Rob Herring:
 - Add new documents with guidelines for DT binding stability and review
   process.  This is one of the outcomes of Kernel Summit DT discussions
 - Remove a bunch of device_type usage which is only for OF and
   deprecated with FDT
 - Fix a long standing issue with compatible string match ordering
 - Various minor binding documentation updates

* tag 'devicetree-for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  dt-bindings: add rockchip vendor prefix
  serial: vt8500: Add missing binding document for arch-vt8500 serial driver.
  dt/bindings: submitting patches and ABI documents
  DT: Add vendor prefix for Emerging Display Technologies
  of: add vendor prefixe for EPFL
  of: add vendor prefix for Gumstix
  of: add vendor prefix for Ka-Ro electronics GmbH
  devicetree: macb: Document clock properties
  dts: bindings: trivial clock bindings doc fixes
  of: Fix __of_device_is_available check
  dt/bindings: Remove device_type "serial" from marvell,mv64360-mpsc
  dt/bindings: remove device_type "network" references
  dt/bindings: remove users of device_type "mdio"
  dt/bindings: Remove references to linux,phandle properties
  dt/bindings: Remove all references to device_type "ethernet-phy"
  of: irq: Ignore disabled intc's when searching map
  of: irq: Ignore disabled interrupt controllers
  OF: base: match each node compatible against all given matches first
  dt-bindings: add GIC-400 binding
parents 8e585a6c e48ca29d
Loading
Loading
Loading
Loading
+39 −0
Original line number Original line Diff line number Diff line

  Devicetree (DT) ABI

I. Regarding stable bindings/ABI, we quote from the 2013 ARM mini-summit
   summary document:

     "That still leaves the question of, what does a stable binding look
     like?  Certainly a stable binding means that a newer kernel will not
     break on an older device tree, but that doesn't mean the binding is
     frozen for all time. Grant said there are ways to change bindings that
     don't result in breakage. For instance, if a new property is added,
     then default to the previous behaviour if it is missing. If a binding
     truly needs an incompatible change, then change the compatible string
     at the same time.  The driver can bind against both the old and the
     new. These guidelines aren't new, but they desperately need to be
     documented."

II.  General binding rules

  1) Maintainers, don't let perfect be the enemy of good.  Don't hold up a
     binding because it isn't perfect.

  2) Use specific compatible strings so that if we need to add a feature (DMA)
     in the future, we can create a new compatible string.  See I.

  3) Bindings can be augmented, but the driver shouldn't break when given
     the old binding. ie. add additional properties, but don't change the
     meaning of an existing property. For drivers, default to the original
     behaviour when a newly added property is missing.

  4) Don't submit bindings for staging or unstable.  That will be decided by
     the devicetree maintainers *after* discussion on the mailinglist.

III. Notes

  1) This document is intended as a general familiarization with the process as
     decided at the 2013 Kernel Summit.  When in doubt, the current word of the
     devicetree maintainers overrules this document.  In that situation, a patch
     updating this document would be appreciated.
+1 −0
Original line number Original line Diff line number Diff line
@@ -11,6 +11,7 @@ have PPIs or SGIs.
Main node required properties:
Main node required properties:


- compatible : should be one of:
- compatible : should be one of:
	"arm,gic-400"
	"arm,cortex-a15-gic"
	"arm,cortex-a15-gic"
	"arm,cortex-a9-gic"
	"arm,cortex-a9-gic"
	"arm,cortex-a7-gic"
	"arm,cortex-a7-gic"
+1 −1
Original line number Original line Diff line number Diff line
@@ -5,7 +5,7 @@ Sources of clock signal can be represented by any node in the device
tree.  Those nodes are designated as clock providers.  Clock consumer
tree.  Those nodes are designated as clock providers.  Clock consumer
nodes use a phandle and clock specifier pair to connect clock provider
nodes use a phandle and clock specifier pair to connect clock provider
outputs to clock inputs.  Similar to the gpio specifiers, a clock
outputs to clock inputs.  Similar to the gpio specifiers, a clock
specifier is an array of one more more cells identifying the clock
specifier is an array of zero, one or more cells identifying the clock
output on a device.  The length of a clock specifier is defined by the
output on a device.  The length of a clock specifier is defined by the
value of a #clock-cells property in the clock provider node.
value of a #clock-cells property in the clock provider node.


+0 −8
Original line number Original line Diff line number Diff line
@@ -79,7 +79,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
   Required properties:
   Required properties:
     - #address-cells : Should be <1>
     - #address-cells : Should be <1>
     - #size-cells : Should be <0>
     - #size-cells : Should be <0>
     - device_type : Should be "mdio"
     - compatible : Should be "marvell,mv64360-mdio"
     - compatible : Should be "marvell,mv64360-mdio"


   Example:
   Example:
@@ -87,7 +86,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
     mdio {
     mdio {
	     #address-cells = <1>;
	     #address-cells = <1>;
	     #size-cells = <0>;
	     #size-cells = <0>;
	     device_type = "mdio";
	     compatible = "marvell,mv64360-mdio";
	     compatible = "marvell,mv64360-mdio";


	     ethernet-phy@0 {
	     ethernet-phy@0 {
@@ -132,7 +130,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
   Ethernet port node
   Ethernet port node


   Required properties:
   Required properties:
     - device_type : Should be "network".
     - compatible : Should be "marvell,mv64360-eth".
     - compatible : Should be "marvell,mv64360-eth".
     - reg : Should be <0>, <1>, or <2>, according to which registers
     - reg : Should be <0>, <1>, or <2>, according to which registers
       within the silicon block the device uses.
       within the silicon block the device uses.
@@ -145,7 +142,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.


   Example Discovery Ethernet port node:
   Example Discovery Ethernet port node:
     ethernet@0 {
     ethernet@0 {
	     device_type = "network";
	     compatible = "marvell,mv64360-eth";
	     compatible = "marvell,mv64360-eth";
	     reg = <0>;
	     reg = <0>;
	     interrupts = <32>;
	     interrupts = <32>;
@@ -159,7 +155,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
   c) Marvell Discovery PHY nodes
   c) Marvell Discovery PHY nodes


   Required properties:
   Required properties:
     - device_type : Should be "ethernet-phy"
     - interrupts : <a> where a is the interrupt number for this phy.
     - interrupts : <a> where a is the interrupt number for this phy.
     - interrupt-parent : the phandle for the interrupt controller that
     - interrupt-parent : the phandle for the interrupt controller that
       services interrupts for this device.
       services interrupts for this device.
@@ -167,7 +162,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.


   Example Discovery PHY node:
   Example Discovery PHY node:
     ethernet-phy@1 {
     ethernet-phy@1 {
	     device_type = "ethernet-phy";
	     compatible = "broadcom,bcm5421";
	     compatible = "broadcom,bcm5421";
	     interrupts = <76>;      /* GPP 12 */
	     interrupts = <76>;      /* GPP 12 */
	     interrupt-parent = <&PIC>;
	     interrupt-parent = <&PIC>;
@@ -271,7 +265,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
   serial port.
   serial port.


   Required properties:
   Required properties:
     - device_type : "serial"
     - compatible : "marvell,mv64360-mpsc"
     - compatible : "marvell,mv64360-mpsc"
     - reg : Offset and length of the register set for this device
     - reg : Offset and length of the register set for this device
     - sdma : the phandle for the SDMA node used by this port
     - sdma : the phandle for the SDMA node used by this port
@@ -288,7 +281,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.


   Example Discovery MPSCINTR node:
   Example Discovery MPSCINTR node:
     mpsc@8000 {
     mpsc@8000 {
	     device_type = "serial";
	     compatible = "marvell,mv64360-mpsc";
	     compatible = "marvell,mv64360-mpsc";
	     reg = <0x8000 0x38>;
	     reg = <0x8000 0x38>;
	     virtual-reg = <0xf1008000>;
	     virtual-reg = <0xf1008000>;
+6 −0
Original line number Original line Diff line number Diff line
@@ -10,6 +10,10 @@ Required properties:
- interrupts: Should contain macb interrupt
- interrupts: Should contain macb interrupt
- phy-mode: String, operation mode of the PHY interface.
- phy-mode: String, operation mode of the PHY interface.
  Supported values are: "mii", "rmii", "gmii", "rgmii".
  Supported values are: "mii", "rmii", "gmii", "rgmii".
- clock-names: Tuple listing input clock names.
	Required elements: 'pclk', 'hclk'
	Optional elements: 'tx_clk'
- clocks: Phandles to input clocks.


Optional properties:
Optional properties:
- local-mac-address: 6 bytes, mac address
- local-mac-address: 6 bytes, mac address
@@ -22,4 +26,6 @@ Examples:
		interrupts = <21>;
		interrupts = <21>;
		phy-mode = "rmii";
		phy-mode = "rmii";
		local-mac-address = [3a 0e 03 04 05 06];
		local-mac-address = [3a 0e 03 04 05 06];
		clock-names = "pclk", "hclk", "tx_clk";
		clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
	};
	};
Loading