Skip to content

Commit

Permalink
Merge tag 'devicetree-for-3.14' of git://git.kernel.org/pub/scm/linux…
Browse files Browse the repository at this point in the history
…/kernel/git/robh/linux

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
  • Loading branch information
torvalds committed Jan 25, 2014
2 parents 8e585a6 + e48ca29 commit 4d8880a
Show file tree
Hide file tree
Showing 103 changed files with 163 additions and 231 deletions.
39 changes: 39 additions & 0 deletions Documentation/devicetree/bindings/ABI.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

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 change: 1 addition & 0 deletions Documentation/devicetree/bindings/arm/gic.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ have PPIs or SGIs.
Main node required properties:

- compatible : should be one of:
"arm,gic-400"
"arm,cortex-a15-gic"
"arm,cortex-a9-gic"
"arm,cortex-a7-gic"
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/clock/clock-bindings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
nodes use a phandle and clock specifier pair to connect clock provider
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
value of a #clock-cells property in the clock provider node.

Expand Down
8 changes: 0 additions & 8 deletions Documentation/devicetree/bindings/marvell.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,13 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
Required properties:
- #address-cells : Should be <1>
- #size-cells : Should be <0>
- device_type : Should be "mdio"
- compatible : Should be "marvell,mv64360-mdio"

Example:

mdio {
#address-cells = <1>;
#size-cells = <0>;
device_type = "mdio";
compatible = "marvell,mv64360-mdio";

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

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

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

Required properties:
- device_type : Should be "ethernet-phy"
- interrupts : <a> where a is the interrupt number for this phy.
- interrupt-parent : the phandle for the interrupt controller that
services interrupts for this device.
- reg : The ID number for the phy, usually a small integer

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

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

Example Discovery MPSCINTR node:
mpsc@8000 {
device_type = "serial";
compatible = "marvell,mv64360-mpsc";
reg = <0x8000 0x38>;
virtual-reg = <0xf1008000>;
Expand Down
6 changes: 6 additions & 0 deletions Documentation/devicetree/bindings/net/macb.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ Required properties:
- interrupts: Should contain macb interrupt
- phy-mode: String, operation mode of the PHY interface.
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:
- local-mac-address: 6 bytes, mac address
Expand All @@ -22,4 +26,6 @@ Examples:
interrupts = <21>;
phy-mode = "rmii";
local-mac-address = [3a 0e 03 04 05 06];
clock-names = "pclk", "hclk", "tx_clk";
clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
};
3 changes: 0 additions & 3 deletions Documentation/devicetree/bindings/net/marvell-orion-net.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ Optional controller properties:
* Ethernet port node

Required port properties:
- device_type: shall be "network".
- compatible: shall be one of "marvell,orion-eth-port",
"marvell,kirkwood-eth-port".
- reg: port number relative to ethernet controller, shall be 0, 1, or 2.
Expand Down Expand Up @@ -61,7 +60,6 @@ or
mdio-bus {
...
ethphy: ethernet-phy@8 {
device_type = "ethernet-phy";
...
};
};
Expand All @@ -75,7 +73,6 @@ eth: ethernet-controller@72000 {
marvell,tx-checksum-limit = <1600>;

ethernet@0 {
device_type = "network";
compatible = "marvell,orion-eth-port";
reg = <0>;
interrupts = <29>;
Expand Down
5 changes: 0 additions & 5 deletions Documentation/devicetree/bindings/net/phy.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ PHY nodes

Required properties:

- device_type : Should be "ethernet-phy"
- interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
information for the interrupt. This should be encoded based on
Expand All @@ -11,8 +10,6 @@ Required properties:
- interrupt-parent : the phandle for the interrupt controller that
services interrupts for this device.
- reg : The ID number for the phy, usually a small integer
- linux,phandle : phandle for this node; likely referenced by an
ethernet controller node.

Optional Properties:

Expand All @@ -27,9 +24,7 @@ Example:

ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
linux,phandle = <2452000>;
interrupt-parent = <40000>;
interrupts = <35 1>;
reg = <0>;
device_type = "ethernet-phy";
};
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ Currently defined compatibles:
Example:

ethernet@11300 {
device_type = "network";
compatible = "fsl,mpc8272-fcc-enet",
"fsl,cpm2-fcc-enet";
reg = <11300 20 8400 100 11390 1>;
Expand All @@ -33,7 +32,6 @@ fsl,mdc-pin : pin of port C controlling mdio clock

Example:
mdio@10d40 {
device_type = "mdio";
compatible = "fsl,mpc8272ads-mdio-bitbang",
"fsl,mpc8272-mdio-bitbang",
"fsl,cpm2-mdio-bitbang";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
* Pin configuration nodes

Required properties:
- linux,phandle : phandle of this node; likely referenced by a QE
device.
- pio-map : array of pin configurations. Each pin is defined by 6
integers. The six numbers are respectively: port, pin, dir,
open_drain, assignment, has_irq.
Expand All @@ -29,7 +27,6 @@ Required properties:

Example:
ucc_pin@01 {
linux,phandle = <140001>;
pio-map = <
/* port pin dir open_drain assignment has_irq */
0 3 1 0 1 0 /* TxD0 */
Expand Down
26 changes: 26 additions & 0 deletions Documentation/devicetree/bindings/serial/vt8500-uart.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
* VIA VT8500 and WonderMedia WM8xxx UART Controller

Required properties:
- compatible: should be "via,vt8500-uart"

- reg: base physical address of the controller and length of memory mapped
region.

- interrupts: hardware interrupt number

- clocks: shall be the input parent clock phandle for the clock. This should
be the 24Mhz reference clock.

Aliases may be defined to ensure the correct ordering of the uarts.

Example:
aliases {
serial0 = &uart0;
};

uart0: serial@d8200000 {
compatible = "via,vt8500-uart";
reg = <0xd8200000 0x1040>;
interrupts = <32>;
clocks = <&clkuart0>;
};
38 changes: 38 additions & 0 deletions Documentation/devicetree/bindings/submitting-patches.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

Submitting devicetree (DT) binding patches

I. For patch submitters

0) Normal patch submission rules from Documentation/SubmittingPatches
applies.

1) The Documentation/ portion of the patch should be a separate patch.

2) Submit the entire series to the devicetree mailinglist at

[email protected]

II. For kernel maintainers

1) If you aren't comfortable reviewing a given binding, reply to it and ask
the devicetree maintainers for guidance. This will help them prioritize
which ones to review and which ones are ok to let go.

2) For driver (not subsystem) bindings: If you are comfortable with the
binding, and it hasn't received an Acked-by from the devicetree
maintainers after a few weeks, go ahead and take it.

Subsystem bindings (anything affecting more than a single device)
then getting a devicetree maintainer to review it is required.

3) For a series going though multiple trees, the binding patch should be
kept with the driver using the binding.

III. Notes

0) Please see ...bindings/ABI.txt for details regarding devicetree ABI.

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.
5 changes: 5 additions & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,16 @@ cortina Cortina Systems, Inc.
dallas Maxim Integrated Products (formerly Dallas Semiconductor)
davicom DAVICOM Semiconductor, Inc.
denx Denx Software Engineering
edt Emerging Display Technologies
emmicro EM Microelectronic
epfl Ecole Polytechnique Fédérale de Lausanne
epson Seiko Epson Corp.
est ESTeem Wireless Modems
fsl Freescale Semiconductor
GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
gmt Global Mixed-mode Technology, Inc.
gumstix Gumstix, Inc.
haoyu Haoyu Microelectronic Co. Ltd.
hisilicon Hisilicon Limited.
hp Hewlett Packard
Expand All @@ -42,6 +45,7 @@ idt Integrated Device Technologies, Inc.
img Imagination Technologies Ltd.
intercontrol Inter Control Group
isl Intersil
karo Ka-Ro electronics GmbH
lg LG Corporation
linux Linux-specific binding
lsi LSI Corp. (LSI Logic)
Expand All @@ -64,6 +68,7 @@ ralink Mediatek/Ralink Technology Corp.
ramtron Ramtron International
realtek Realtek Semiconductor Corp.
renesas Renesas Electronics Corporation
rockchip Fuzhou Rockchip Electronics Co., Ltd
samsung Samsung Semiconductor
sbs Smart Battery System
schindler Schindler
Expand Down
3 changes: 0 additions & 3 deletions Documentation/devicetree/booting-without-of.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1364,19 +1364,16 @@ Appendix A - Sample SOC node for MPC8540
phy0: ethernet-phy@0 {
interrupts = <5 1>;
reg = <0>;
device_type = "ethernet-phy";
};

phy1: ethernet-phy@1 {
interrupts = <5 1>;
reg = <1>;
device_type = "ethernet-phy";
};

phy3: ethernet-phy@3 {
interrupts = <7 1>;
reg = <3>;
device_type = "ethernet-phy";
};
};
};
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/boot/dts/dove.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,6 @@
status = "disabled";

ethernet-port@0 {
device_type = "network";
compatible = "marvell,orion-eth-port";
reg = <0>;
interrupts = <29>;
Expand All @@ -316,7 +315,6 @@
status = "disabled";

ethphy: ethernet-phy {
device_type = "ethernet-phy";
/* set phy address in board file */
};
};
Expand Down
1 change: 0 additions & 1 deletion arch/arm/boot/dts/kirkwood-cloudbox.dts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@
status = "okay";

ethphy0: ethernet-phy@0 {
device_type = "ethernet-phy";
reg = <0>;
};
};
Expand Down
1 change: 0 additions & 1 deletion arch/arm/boot/dts/kirkwood-db.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@
status = "okay";

ethphy0: ethernet-phy@8 {
device_type = "ethernet-phy";
reg = <8>;
};
};
Expand Down
1 change: 0 additions & 1 deletion arch/arm/boot/dts/kirkwood-dnskw.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@
status = "okay";

ethphy0: ethernet-phy@8 {
device_type = "ethernet-phy";
reg = <8>;
};
};
Expand Down
1 change: 0 additions & 1 deletion arch/arm/boot/dts/kirkwood-dockstar.dts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@
status = "okay";

ethphy0: ethernet-phy@0 {
device_type = "ethernet-phy";
compatible = "marvell,88e1116";
reg = <0>;
};
Expand Down
Loading

0 comments on commit 4d8880a

Please sign in to comment.