Commit 78d9b048 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'devicetree-fixes-for-4.15-part2' of...

Merge tag 'devicetree-fixes-for-4.15-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull DeviceTree fixes from Rob Herring:
 "Another set of DT fixes:

   - Fixes from overlay code rework. A trifecta of fixes to the locking,
     an out of bounds access, and a memory leak in of_overlay_apply()

   - Clean-up at25 eeprom binding document

   - Remove leading '0x' in unit-addresses from binding docs"

* tag 'devicetree-fixes-for-4.15-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  of: overlay: Make node skipping in init_overlay_changeset() clearer
  of: overlay: Fix out-of-bounds write in init_overlay_changeset()
  of: overlay: Fix (un)locking in of_overlay_apply()
  of: overlay: Fix memory leak in of_overlay_apply() error path
  dt-bindings: eeprom: at25: Document device-specific compatible values
  dt-bindings: eeprom: at25: Grammar s/are can/can/
  dt-bindings: Remove leading 0x from bindings notation
  of: overlay: Remove else after goto
  of: Spelling s/changset/changeset/
  of: unittest: Remove bogus overlay mutex release from overlay_data_add()
parents 900add27 589b754d
...@@ -15,7 +15,7 @@ Required properties: ...@@ -15,7 +15,7 @@ Required properties:
Example: Example:
ccn@0x2000000000 { ccn@2000000000 {
compatible = "arm,ccn-504"; compatible = "arm,ccn-504";
reg = <0x20 0x00000000 0 0x1000000>; reg = <0x20 0x00000000 0 0x1000000>;
interrupts = <0 181 4>; interrupts = <0 181 4>;
......
...@@ -49,7 +49,7 @@ An interrupt consumer on an SoC using crossbar will use: ...@@ -49,7 +49,7 @@ An interrupt consumer on an SoC using crossbar will use:
interrupts = <GIC_SPI request_number interrupt_level> interrupts = <GIC_SPI request_number interrupt_level>
Example: Example:
device_x@0x4a023000 { device_x@4a023000 {
/* Crossbar 8 used */ /* Crossbar 8 used */
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
... ...
......
...@@ -8,7 +8,7 @@ Required properties: ...@@ -8,7 +8,7 @@ Required properties:
- interrupts : Should contain MC General interrupt. - interrupts : Should contain MC General interrupt.
Example: Example:
memory-controller@0x7000f000 { memory-controller@7000f000 {
compatible = "nvidia,tegra20-mc"; compatible = "nvidia,tegra20-mc";
reg = <0x7000f000 0x024 reg = <0x7000f000 0x024
0x7000f03c 0x3c4>; 0x7000f03c 0x3c4>;
......
...@@ -17,7 +17,7 @@ Optional properties: ...@@ -17,7 +17,7 @@ Optional properties:
- clock-output-names : From common clock binding. - clock-output-names : From common clock binding.
Example: Example:
clock@0xff000000 { clock@ff000000 {
compatible = "adi,axi-clkgen"; compatible = "adi,axi-clkgen";
#clock-cells = <0>; #clock-cells = <0>;
reg = <0xff000000 0x1000>; reg = <0xff000000 0x1000>;
......
...@@ -23,7 +23,7 @@ Example: ...@@ -23,7 +23,7 @@ Example:
clocks = <&clk_osc>; clocks = <&clk_osc>;
}; };
aux: aux@0x7e215004 { aux: aux@7e215004 {
compatible = "brcm,bcm2835-aux"; compatible = "brcm,bcm2835-aux";
#clock-cells = <1>; #clock-cells = <1>;
reg = <0x7e215000 0x8>; reg = <0x7e215000 0x8>;
......
...@@ -24,7 +24,7 @@ tree sources. ...@@ -24,7 +24,7 @@ tree sources.
Example 1: An example of a clock controller node is listed below. Example 1: An example of a clock controller node is listed below.
clock: clock-controller@0x10030000 { clock: clock-controller@10030000 {
compatible = "samsung,exynos4210-clock"; compatible = "samsung,exynos4210-clock";
reg = <0x10030000 0x20000>; reg = <0x10030000 0x20000>;
#clock-cells = <1>; #clock-cells = <1>;
......
...@@ -22,7 +22,7 @@ tree sources. ...@@ -22,7 +22,7 @@ tree sources.
Example 1: An example of a clock controller node is listed below. Example 1: An example of a clock controller node is listed below.
clock: clock-controller@0x10010000 { clock: clock-controller@10010000 {
compatible = "samsung,exynos5250-clock"; compatible = "samsung,exynos5250-clock";
reg = <0x10010000 0x30000>; reg = <0x10010000 0x30000>;
#clock-cells = <1>; #clock-cells = <1>;
......
...@@ -30,7 +30,7 @@ Example 1: An example of a clock controller node is listed below. ...@@ -30,7 +30,7 @@ Example 1: An example of a clock controller node is listed below.
#clock-cells = <0>; #clock-cells = <0>;
}; };
clock: clock-controller@0x10010000 { clock: clock-controller@10010000 {
compatible = "samsung,exynos5410-clock"; compatible = "samsung,exynos5410-clock";
reg = <0x10010000 0x30000>; reg = <0x10010000 0x30000>;
#clock-cells = <1>; #clock-cells = <1>;
......
...@@ -23,7 +23,7 @@ tree sources. ...@@ -23,7 +23,7 @@ tree sources.
Example 1: An example of a clock controller node is listed below. Example 1: An example of a clock controller node is listed below.
clock: clock-controller@0x10010000 { clock: clock-controller@10010000 {
compatible = "samsung,exynos5420-clock"; compatible = "samsung,exynos5420-clock";
reg = <0x10010000 0x30000>; reg = <0x10010000 0x30000>;
#clock-cells = <1>; #clock-cells = <1>;
......
...@@ -21,7 +21,7 @@ tree sources. ...@@ -21,7 +21,7 @@ tree sources.
Example: An example of a clock controller node is listed below. Example: An example of a clock controller node is listed below.
clock: clock-controller@0x10010000 { clock: clock-controller@10010000 {
compatible = "samsung,exynos5440-clock"; compatible = "samsung,exynos5440-clock";
reg = <0x160000 0x10000>; reg = <0x160000 0x10000>;
#clock-cells = <1>; #clock-cells = <1>;
......
...@@ -14,7 +14,7 @@ Required properties: ...@@ -14,7 +14,7 @@ Required properties:
Example: Example:
pllctrl: pll-controller@0x02310000 { pllctrl: pll-controller@02310000 {
compatible = "ti,keystone-pllctrl", "syscon"; compatible = "ti,keystone-pllctrl", "syscon";
reg = <0x02310000 0x200>; reg = <0x02310000 0x200>;
}; };
...@@ -20,13 +20,13 @@ ID in its "clocks" phandle cell. See include/dt-bindings/clock/zx296702-clock.h ...@@ -20,13 +20,13 @@ ID in its "clocks" phandle cell. See include/dt-bindings/clock/zx296702-clock.h
for the full list of zx296702 clock IDs. for the full list of zx296702 clock IDs.
topclk: topcrm@0x09800000 { topclk: topcrm@09800000 {
compatible = "zte,zx296702-topcrm-clk"; compatible = "zte,zx296702-topcrm-clk";
reg = <0x09800000 0x1000>; reg = <0x09800000 0x1000>;
#clock-cells = <1>; #clock-cells = <1>;
}; };
uart0: serial@0x09405000 { uart0: serial@09405000 {
compatible = "zte,zx296702-uart"; compatible = "zte,zx296702-uart";
reg = <0x09405000 0x1000>; reg = <0x09405000 0x1000>;
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -456,7 +456,7 @@ System ON/OFF key driver ...@@ -456,7 +456,7 @@ System ON/OFF key driver
Definition: this is phandle to the register map node. Definition: this is phandle to the register map node.
EXAMPLE: EXAMPLE:
snvs-pwrkey@0x020cc000 { snvs-pwrkey@020cc000 {
compatible = "fsl,sec-v4.0-pwrkey"; compatible = "fsl,sec-v4.0-pwrkey";
regmap = <&snvs>; regmap = <&snvs>;
interrupts = <0 4 0x4> interrupts = <0 4 0x4>
...@@ -545,7 +545,7 @@ FULL EXAMPLE ...@@ -545,7 +545,7 @@ FULL EXAMPLE
interrupts = <93 2>; interrupts = <93 2>;
}; };
snvs-pwrkey@0x020cc000 { snvs-pwrkey@020cc000 {
compatible = "fsl,sec-v4.0-pwrkey"; compatible = "fsl,sec-v4.0-pwrkey";
regmap = <&sec_mon>; regmap = <&sec_mon>;
interrupts = <0 4 0x4>; interrupts = <0 4 0x4>;
......
...@@ -9,7 +9,7 @@ Required properties: ...@@ -9,7 +9,7 @@ Required properties:
- clock-names : the name of clock used by the DFI, must be "pclk_ddr_mon"; - clock-names : the name of clock used by the DFI, must be "pclk_ddr_mon";
Example: Example:
dfi: dfi@0xff630000 { dfi: dfi@ff630000 {
compatible = "rockchip,rk3399-dfi"; compatible = "rockchip,rk3399-dfi";
reg = <0x00 0xff630000 0x00 0x4000>; reg = <0x00 0xff630000 0x00 0x4000>;
rockchip,pmu = <&pmugrf>; rockchip,pmu = <&pmugrf>;
......
...@@ -27,7 +27,7 @@ Optional properties: ...@@ -27,7 +27,7 @@ Optional properties:
Example: Example:
fb0: fb@0x00500000 { fb0: fb@00500000 {
compatible = "atmel,at91sam9g45-lcdc"; compatible = "atmel,at91sam9g45-lcdc";
reg = <0x00500000 0x1000>; reg = <0x00500000 0x1000>;
interrupts = <23 3 0>; interrupts = <23 3 0>;
...@@ -41,7 +41,7 @@ Example: ...@@ -41,7 +41,7 @@ Example:
Example for fixed framebuffer memory: Example for fixed framebuffer memory:
fb0: fb@0x00500000 { fb0: fb@00500000 {
compatible = "atmel,at91sam9263-lcdc"; compatible = "atmel,at91sam9263-lcdc";
reg = <0x00700000 0x1000 0x70000000 0x200000>; reg = <0x00700000 0x1000 0x70000000 0x200000>;
[...] [...]
......
...@@ -73,7 +73,7 @@ Hypervisor OS configuration: ...@@ -73,7 +73,7 @@ Hypervisor OS configuration:
max-read-transactions = <31>; max-read-transactions = <31>;
channel-reset-timeout-cycles = <0x500>; channel-reset-timeout-cycles = <0x500>;
hidma_24: dma-controller@0x5c050000 { hidma_24: dma-controller@5c050000 {
compatible = "qcom,hidma-1.0"; compatible = "qcom,hidma-1.0";
reg = <0 0x5c050000 0x0 0x1000>, reg = <0 0x5c050000 0x0 0x1000>,
<0 0x5c0b0000 0x0 0x1000>; <0 0x5c0b0000 0x0 0x1000>;
...@@ -85,7 +85,7 @@ Hypervisor OS configuration: ...@@ -85,7 +85,7 @@ Hypervisor OS configuration:
Guest OS configuration: Guest OS configuration:
hidma_24: dma-controller@0x5c050000 { hidma_24: dma-controller@5c050000 {
compatible = "qcom,hidma-1.0"; compatible = "qcom,hidma-1.0";
reg = <0 0x5c050000 0x0 0x1000>, reg = <0 0x5c050000 0x0 0x1000>,
<0 0x5c0b0000 0x0 0x1000>; <0 0x5c0b0000 0x0 0x1000>;
......
...@@ -13,7 +13,7 @@ Required properties: ...@@ -13,7 +13,7 @@ Required properties:
Example: Example:
Controller: Controller:
dma: dma-controller@0x09c00000{ dma: dma-controller@09c00000{
compatible = "zte,zx296702-dma"; compatible = "zte,zx296702-dma";
reg = <0x09c00000 0x1000>; reg = <0x09c00000 0x1000>;
clocks = <&topclk ZX296702_DMA_ACLK>; clocks = <&topclk ZX296702_DMA_ACLK>;
......
EEPROMs (SPI) compatible with Atmel at25. EEPROMs (SPI) compatible with Atmel at25.
Required properties: Required properties:
- compatible : "atmel,at25". - compatible : Should be "<vendor>,<type>", and generic value "atmel,at25".
Example "<vendor>,<type>" values:
"microchip,25lc040"
"st,m95m02"
"st,m95256"
- reg : chip select number - reg : chip select number
- spi-max-frequency : max spi frequency to use - spi-max-frequency : max spi frequency to use
- pagesize : size of the eeprom page - pagesize : size of the eeprom page
...@@ -13,7 +18,7 @@ Optional properties: ...@@ -13,7 +18,7 @@ Optional properties:
- spi-cpol : SPI inverse clock polarity, as per spi-bus bindings. - spi-cpol : SPI inverse clock polarity, as per spi-bus bindings.
- read-only : this parameter-less property disables writes to the eeprom - read-only : this parameter-less property disables writes to the eeprom
Obsolete legacy properties are can be used in place of "size", "pagesize", Obsolete legacy properties can be used in place of "size", "pagesize",
"address-width", and "read-only": "address-width", and "read-only":
- at25,byte-len : total eeprom size in bytes - at25,byte-len : total eeprom size in bytes
- at25,addr-mode : addr-mode flags, as defined in include/linux/spi/eeprom.h - at25,addr-mode : addr-mode flags, as defined in include/linux/spi/eeprom.h
...@@ -22,8 +27,8 @@ Obsolete legacy properties are can be used in place of "size", "pagesize", ...@@ -22,8 +27,8 @@ Obsolete legacy properties are can be used in place of "size", "pagesize",
Additional compatible properties are also allowed. Additional compatible properties are also allowed.
Example: Example:
at25@0 { eeprom@0 {
compatible = "atmel,at25", "st,m95256"; compatible = "st,m95256", "atmel,at25";
reg = <0> reg = <0>
spi-max-frequency = <5000000>; spi-max-frequency = <5000000>;
spi-cpha; spi-cpha;
......
...@@ -30,7 +30,7 @@ Optional properties: ...@@ -30,7 +30,7 @@ Optional properties:
Example: Example:
gpio_altr: gpio@0xff200000 { gpio_altr: gpio@ff200000 {
compatible = "altr,pio-1.0"; compatible = "altr,pio-1.0";
reg = <0xff200000 0x10>; reg = <0xff200000 0x10>;
interrupts = <0 45 4>; interrupts = <0 45 4>;
......
...@@ -18,7 +18,7 @@ Optional properties: ...@@ -18,7 +18,7 @@ Optional properties:
Example Example
/ { / {
i2c4: i2c4@0x10054000 { i2c4: i2c4@10054000 {
compatible = "ingenic,jz4780-i2c"; compatible = "ingenic,jz4780-i2c";
reg = <0x10054000 0x1000>; reg = <0x10054000 0x1000>;
......
...@@ -10,7 +10,7 @@ Required properties: ...@@ -10,7 +10,7 @@ Required properties:
Example: Example:
hp03@0x77 { hp03@77 {
compatible = "hoperf,hp03"; compatible = "hoperf,hp03";
reg = <0x77>; reg = <0x77>;
xclr-gpio = <&portc 0 0x0>; xclr-gpio = <&portc 0 0x0>;
......
...@@ -15,7 +15,7 @@ Optional properties: ...@@ -15,7 +15,7 @@ Optional properties:
Example: Example:
i2c@80110000 { i2c@80110000 {
bu21013_tp@0x5c { bu21013_tp@5c {
compatible = "rohm,bu21013_tp"; compatible = "rohm,bu21013_tp";
reg = <0x5c>; reg = <0x5c>;
touch-gpio = <&gpio2 20 0x4>; touch-gpio = <&gpio2 20 0x4>;
......
...@@ -155,7 +155,7 @@ Example: ...@@ -155,7 +155,7 @@ Example:
<0x0 0xe112f000 0 0x02000>, <0x0 0xe112f000 0 0x02000>,
<0x0 0xe1140000 0 0x10000>, <0x0 0xe1140000 0 0x10000>,
<0x0 0xe1160000 0 0x10000>; <0x0 0xe1160000 0 0x10000>;
v2m0: v2m@0x8000 { v2m0: v2m@8000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
msi-controller; msi-controller;
reg = <0x0 0x80000 0 0x1000>; reg = <0x0 0x80000 0 0x1000>;
...@@ -163,7 +163,7 @@ Example: ...@@ -163,7 +163,7 @@ Example:
.... ....
v2mN: v2m@0x9000 { v2mN: v2m@9000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
msi-controller; msi-controller;
reg = <0x0 0x90000 0 0x1000>; reg = <0x0 0x90000 0 0x1000>;
......
...@@ -71,7 +71,7 @@ Example 2: ...@@ -71,7 +71,7 @@ Example 2:
* An interrupt generating device that is wired to a Meta external * An interrupt generating device that is wired to a Meta external
* trigger block. * trigger block.
*/ */
uart1: uart@0x02004c00 { uart1: uart@02004c00 {
// Interrupt source '5' that is level-sensitive. // Interrupt source '5' that is level-sensitive.
// Note that there are only two cells as specified in the // Note that there are only two cells as specified in the
// interrupt parent's '#interrupt-cells' property. // interrupt parent's '#interrupt-cells' property.
......
...@@ -51,7 +51,7 @@ Example 1: ...@@ -51,7 +51,7 @@ Example 1:
/* /*
* TZ1090 PDC block * TZ1090 PDC block
*/ */
pdc: pdc@0x02006000 { pdc: pdc@02006000 {
// This is an interrupt controller node. // This is an interrupt controller node.
interrupt-controller; interrupt-controller;
......
...@@ -39,7 +39,7 @@ Example: ...@@ -39,7 +39,7 @@ Example:
The following is an example from the SPEAr320 SoC dtsi file. The following is an example from the SPEAr320 SoC dtsi file.
shirq: interrupt-controller@0xb3000000 { shirq: interrupt-controller@b3000000 {
compatible = "st,spear320-shirq"; compatible = "st,spear320-shirq";
reg = <0xb3000000 0x1000>; reg = <0xb3000000 0x1000>;
interrupts = <28 29 30 1>; interrupts = <28 29 30 1>;
......
...@@ -14,7 +14,7 @@ Optional properties: ...@@ -14,7 +14,7 @@ Optional properties:
depends on the interrupt controller parent. depends on the interrupt controller parent.
Example: Example:
mbox_tx: mailbox@0x100 { mbox_tx: mailbox@100 {
compatible = "altr,mailbox-1.0"; compatible = "altr,mailbox-1.0";
reg = <0x100 0x8>; reg = <0x100 0x8>;
interrupt-parent = < &gic_0 >; interrupt-parent = < &gic_0 >;
...@@ -22,7 +22,7 @@ Example: ...@@ -22,7 +22,7 @@ Example:
#mbox-cells = <1>; #mbox-cells = <1>;
}; };
mbox_rx: mailbox@0x200 { mbox_rx: mailbox@200 {
compatible = "altr,mailbox-1.0"; compatible = "altr,mailbox-1.0";
reg = <0x200 0x8>; reg = <0x200 0x8>;
interrupt-parent = < &gic_0 >; interrupt-parent = < &gic_0 >;
...@@ -40,7 +40,7 @@ support only one channel).The equivalent "mbox-names" property value can be ...@@ -40,7 +40,7 @@ support only one channel).The equivalent "mbox-names" property value can be
used to give a name to the communication channel to be used by the client user. used to give a name to the communication channel to be used by the client user.
Example: Example:
mclient0: mclient0@0x400 { mclient0: mclient0@400 {
compatible = "client-1.0"; compatible = "client-1.0";
reg = <0x400 0x10>; reg = <0x400 0x10>;
mbox-names = "mbox-tx", "mbox-rx"; mbox-names = "mbox-tx", "mbox-rx";
......
...@@ -15,7 +15,7 @@ Optional properties: ...@@ -15,7 +15,7 @@ Optional properties:
- brcm,use-bcm-hdr: present if a BCM header precedes each frame. - brcm,use-bcm-hdr: present if a BCM header precedes each frame.
Example: Example:
pdc0: iproc-pdc0@0x612c0000 { pdc0: iproc-pdc0@612c0000 {
compatible = "brcm,iproc-pdc-mbox"; compatible = "brcm,iproc-pdc-mbox";
reg = <0 0x612c0000 0 0x445>; /* PDC FS0 regs */ reg = <0 0x612c0000 0 0x445>; /* PDC FS0 regs */
interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -17,7 +17,7 @@ Optional properties: ...@@ -17,7 +17,7 @@ Optional properties:
Example: Example:
gsc_0: gsc@0x13e00000 { gsc_0: gsc@13e00000 {
compatible = "samsung,exynos5250-gsc"; compatible = "samsung,exynos5250-gsc";
reg = <0x13e00000 0x1000>; reg = <0x13e00000 0x1000>;
interrupts = <0 85 0>; interrupts = <0 85 0>;
......
...@@ -68,7 +68,7 @@ vcodec_dec: vcodec@16000000 { ...@@ -68,7 +68,7 @@ vcodec_dec: vcodec@16000000 {
"vdec_bus_clk_src"; "vdec_bus_clk_src";
}; };
vcodec_enc: vcodec@0x18002000 { vcodec_enc: vcodec@18002000 {
compatible = "mediatek,mt8173-vcodec-enc"; compatible = "mediatek,mt8173-vcodec-enc";
reg = <0 0x18002000 0 0x1000>, /*VENC_SYS*/ reg = <0 0x18002000 0 0x1000>, /*VENC_SYS*/
<0 0x19002000 0 0x1000>; /*VENC_LT_SYS*/ <0 0x19002000 0 0x1000>; /*VENC_LT_SYS*/
......
...@@ -44,7 +44,7 @@ Device node example ...@@ -44,7 +44,7 @@ Device node example
vin0 = &vin0; vin0 = &vin0;
}; };
vin0: vin@0xe6ef0000 { vin0: vin@e6ef0000 {
compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
clocks = <&mstp8_clks R8A7790_CLK_VIN0>; clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
reg = <0 0xe6ef0000 0 0x1000>; reg = <0 0xe6ef0000 0 0x1000>;
......
...@@ -138,7 +138,7 @@ Example: ...@@ -138,7 +138,7 @@ Example:
}; };
/* MIPI CSI-2 bus IF sensor */ /* MIPI CSI-2 bus IF sensor */
s5c73m3: sensor@0x1a { s5c73m3: sensor@1a {
compatible = "samsung,s5c73m3"; compatible = "samsung,s5c73m3";
reg = <0x1a>; reg = <0x1a>;
vddio-supply = <...>; vddio-supply = <...>;
......
...@@ -8,7 +8,7 @@ Bindings, specific for the sh_mobile_ceu_camera.c driver: ...@@ -8,7 +8,7 @@ Bindings, specific for the sh_mobile_ceu_camera.c driver:
Example: Example:
ceu0: ceu@0xfe910000 { ceu0: ceu@fe910000 {
compatible = "renesas,sh-mobile-ceu"; compatible = "renesas,sh-mobile-ceu";
reg = <0xfe910000 0xa0>; reg = <0xfe910000 0xa0>;
interrupt-parent = <&intcs>; interrupt-parent = <&intcs>;
......
...@@ -154,7 +154,7 @@ imx074 is linked to ceu0 through the MIPI CSI-2 receiver (csi2). ceu0 has a ...@@ -154,7 +154,7 @@ imx074 is linked to ceu0 through the MIPI CSI-2 receiver (csi2). ceu0 has a
'port' node which may indicate that at any time only one of the following data 'port' node which may indicate that at any time only one of the following data
pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0.
ceu0: ceu@0xfe910000 { ceu0: ceu@fe910000 {
compatible = "renesas,sh-mobile-ceu"; compatible = "renesas,sh-mobile-ceu";
reg = <0xfe910000 0xa0>; reg = <0xfe910000 0xa0>;
interrupts = <0x880>; interrupts = <0x880>;
...@@ -193,9 +193,9 @@ pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. ...@@ -193,9 +193,9 @@ pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0.
}; };
}; };
i2c0: i2c@0xfff20000 { i2c0: i2c@fff20000 {
... ...
ov772x_1: camera@0x21 { ov772x_1: camera@21 {
compatible = "ovti,ov772x"; compatible = "ovti,ov772x";
reg = <0x21>; reg = <0x21>;
vddio-supply = <&regulator1>; vddio-supply = <&regulator1>;
...@@ -219,7 +219,7 @@ pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. ...@@ -219,7 +219,7 @@ pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0.
}; };
}; };
imx074: camera@0x1a { imx074: camera@1a {
compatible = "sony,imx074"; compatible = "sony,imx074";
reg = <0x1a>; reg = <0x1a>;
vddio-supply = <&regulator1>; vddio-supply = <&regulator1>;
...@@ -239,7 +239,7 @@ pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. ...@@ -239,7 +239,7 @@ pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0.
}; };
}; };
csi2: csi2@0xffc90000 { csi2: csi2@ffc90000 {
compatible = "renesas,sh-mobile-csi2"; compatible = "renesas,sh-mobile-csi2";
reg = <0xffc90000 0x1000>; reg = <0xffc90000 0x1000>;
interrupts = <0x17a0>; interrupts = <0x17a0>;
......
...@@ -46,7 +46,7 @@ Optional properties: ...@@ -46,7 +46,7 @@ Optional properties:
Example: Example:
emif1: emif@0x4c000000 { emif1: emif@4c000000 {
compatible = "ti,emif-4d"; compatible = "ti,emif-4d";
ti,hwmods = "emif2"; ti,hwmods = "emif2";
phy-type = <1>; phy-type = <1>;
......
...@@ -13,7 +13,7 @@ Required properties: ...@@ -13,7 +13,7 @@ Required properties:
Example: Example:
devctrl: device-state-control@0x02620000 { devctrl: device-state-control@02620000 {
compatible = "ti,keystone-devctrl", "syscon"; compatible = "ti,keystone-devctrl", "syscon";
reg = <0x02620000 0x1000>; reg = <0x02620000 0x1000>;
}; };
...@@ -9,7 +9,7 @@ Required properties: ...@@ -9,7 +9,7 @@ Required properties:
- reg : Location and size of bounce buffer - reg : Location and size of bounce buffer
Example: Example:
smc@0x3404c000 { smc@3404c000 {
compatible = "brcm,bcm11351-smc", "brcm,kona-smc"; compatible = "brcm,bcm11351-smc", "brcm,kona-smc";
reg = <0x3404c000 0x400>; //1 KiB in SRAM reg = <0x3404c000 0x400>; //1 KiB in SRAM
}; };
...@@ -12,7 +12,7 @@ Refer to clocks/clock-bindings.txt for generic clock consumer properties. ...@@ -12,7 +12,7 @@ Refer to clocks/clock-bindings.txt for generic clock consumer properties.
Example: Example:
sdio2: sdio@0x3f1a0000 { sdio2: sdio@3f1a0000 {
compatible = "brcm,kona-sdhci"; compatible = "brcm,kona-sdhci";
reg = <0x3f1a0000 0x10000>; reg = <0x3f1a0000 0x10000>;
clocks = <&sdio3_clk>; clocks = <&sdio3_clk>;
......
...@@ -24,7 +24,7 @@ Optional properties: ...@@ -24,7 +24,7 @@ Optional properties:
Example: Example:
sdhci0: sdhci@0x18041000 { sdhci0: sdhci@18041000 {
compatible = "brcm,sdhci-iproc-cygnus"; compatible = "brcm,sdhci-iproc-cygnus";
reg = <0x18041000 0x100>; reg = <0x18041000 0x100>;
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -55,7 +55,7 @@ Examples: ...@@ -55,7 +55,7 @@ Examples:
[hwmod populated DMA resources] [hwmod populated DMA resources]
mmc1: mmc@0x4809c000 { mmc1: mmc@4809c000 {
compatible = "ti,omap4-hsmmc"; compatible = "ti,omap4-hsmmc";
reg = <0x4809c000 0x400>; reg = <0x4809c000 0x400>;
ti,hwmods = "mmc1"; ti,hwmods = "mmc1";
...@@ -67,7 +67,7 @@ Examples: ...@@ -67,7 +67,7 @@ Examples:
[generic DMA request binding] [generic DMA request binding]
mmc1: mmc@0x4809c000 { mmc1: mmc@4809c000 {
compatible = "ti,omap4-hsmmc"; compatible = "ti,omap4-hsmmc";
reg = <0x4809c000 0x400>; reg = <0x4809c000 0x400>;
ti,hwmods = "mmc1"; ti,hwmods = "mmc1";
......
...@@ -82,15 +82,15 @@ gpmc: gpmc@6e000000 { ...@@ -82,15 +82,15 @@ gpmc: gpmc@6e000000 {
label = "bootloader-nor"; label = "bootloader-nor";
reg = <0 0x40000>; reg = <0 0x40000>;
}; };
partition@0x40000 { partition@40000 {
label = "params-nor"; label = "params-nor";
reg = <0x40000 0x40000>; reg = <0x40000 0x40000>;
}; };
partition@0x80000 { partition@80000 {
label = "kernel-nor"; label = "kernel-nor";
reg = <0x80000 0x200000>; reg = <0x80000 0x200000>;
}; };
partition@0x280000 { partition@280000 {
label = "filesystem-nor"; label = "filesystem-nor";
reg = <0x240000 0x7d80000>; reg = <0x240000 0x7d80000>;
}; };
......
...@@ -131,7 +131,7 @@ Example: ...@@ -131,7 +131,7 @@ Example:
read-only; read-only;
reg = <0x00000000 0x00400000>; reg = <0x00000000 0x00400000>;
}; };
android@0x00400000 { android@00400000 {
label = "android"; label = "android";
reg = <0x00400000 0x12c00000>; reg = <0x00400000 0x12c00000>;
}; };
......
...@@ -52,7 +52,7 @@ Optional properties: ...@@ -52,7 +52,7 @@ Optional properties:
Example: Example:
tse_sub_0_eth_tse_0: ethernet@0x1,00000000 { tse_sub_0_eth_tse_0: ethernet@1,00000000 {
compatible = "altr,tse-msgdma-1.0"; compatible = "altr,tse-msgdma-1.0";
reg = <0x00000001 0x00000000 0x00000400>, reg = <0x00000001 0x00000000 0x00000400>,
<0x00000001 0x00000460 0x00000020>, <0x00000001 0x00000460 0x00000020>,
...@@ -90,7 +90,7 @@ Example: ...@@ -90,7 +90,7 @@ Example:
}; };
}; };
tse_sub_1_eth_tse_0: ethernet@0x1,00001000 { tse_sub_1_eth_tse_0: ethernet@1,00001000 {
compatible = "altr,tse-msgdma-1.0"; compatible = "altr,tse-msgdma-1.0";
reg = <0x00000001 0x00001000 0x00000400>, reg = <0x00000001 0x00001000 0x00000400>,
<0x00000001 0x00001460 0x00000020>, <0x00000001 0x00001460 0x00000020>,
......
...@@ -18,7 +18,7 @@ Example : ...@@ -18,7 +18,7 @@ Example :
This example shows these optional properties, plus other properties This example shows these optional properties, plus other properties
required for the TI Davinci MDIO driver. required for the TI Davinci MDIO driver.
davinci_mdio: ethernet@0x5c030000 { davinci_mdio: ethernet@5c030000 {
compatible = "ti,davinci_mdio"; compatible = "ti,davinci_mdio";
reg = <0x5c030000 0x1000>; reg = <0x5c030000 0x1000>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -28,7 +28,7 @@ Required properties: ...@@ -28,7 +28,7 @@ Required properties:
Example: Example:
gmii_to_sgmii_converter: phy@0x100000240 { gmii_to_sgmii_converter: phy@100000240 {
compatible = "altr,gmii-to-sgmii-2.0"; compatible = "altr,gmii-to-sgmii-2.0";
reg = <0x00000001 0x00000240 0x00000008>, reg = <0x00000001 0x00000240 0x00000008>,
<0x00000001 0x00000200 0x00000040>; <0x00000001 0x00000200 0x00000040>;
......
...@@ -36,7 +36,7 @@ Optional properties: ...@@ -36,7 +36,7 @@ Optional properties:
Example: Example:
cpu@0x0 { cpu@0 {
device_type = "cpu"; device_type = "cpu";
compatible = "altr,nios2-1.0"; compatible = "altr,nios2-1.0";
reg = <0>; reg = <0>;
......
...@@ -25,7 +25,7 @@ Optional properties: ...@@ -25,7 +25,7 @@ Optional properties:
- bus-range: PCI bus numbers covered - bus-range: PCI bus numbers covered
Example Example
pcie_0: pcie@0xc00000000 { pcie_0: pcie@c00000000 {
compatible = "altr,pcie-root-port-1.0"; compatible = "altr,pcie-root-port-1.0";
reg = <0xc0000000 0x20000000>, reg = <0xc0000000 0x20000000>,
<0xff220000 0x00004000>; <0xff220000 0x00004000>;
......
...@@ -52,7 +52,7 @@ Additional required properties for imx7d-pcie: ...@@ -52,7 +52,7 @@ Additional required properties for imx7d-pcie:
Example: Example:
pcie@0x01000000 { pcie@01000000 {
compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
reg = <0x01ffc000 0x04000>, reg = <0x01ffc000 0x04000>,
<0x01f00000 0x80000>; <0x01f00000 0x80000>;
......
...@@ -21,7 +21,7 @@ Optional properties: ...@@ -21,7 +21,7 @@ Optional properties:
- dma-coherent: Present if DMA operations are coherent. - dma-coherent: Present if DMA operations are coherent.
Hip05 Example (note that Hip06 is the same except compatible): Hip05 Example (note that Hip06 is the same except compatible):
pcie@0xb0080000 { pcie@b0080000 {
compatible = "hisilicon,hip05-pcie", "snps,dw-pcie"; compatible = "hisilicon,hip05-pcie", "snps,dw-pcie";
reg = <0 0xb0080000 0 0x10000>, <0x220 0x00000000 0 0x2000>; reg = <0 0xb0080000 0 0x10000>, <0x220 0x00000000 0 0x2000>;
reg-names = "rc_dbi", "config"; reg-names = "rc_dbi", "config";
......
...@@ -45,7 +45,7 @@ Optional properties: ...@@ -45,7 +45,7 @@ Optional properties:
- usb3_vbus-supply : regulator phandle for controller usb3 vbus - usb3_vbus-supply : regulator phandle for controller usb3 vbus
Example: Example:
usbphy: phy@0x01c13400 { usbphy: phy@01c13400 {
#phy-cells = <1>; #phy-cells = <1>;
compatible = "allwinner,sun4i-a10-usb-phy"; compatible = "allwinner,sun4i-a10-usb-phy";
/* phy base regs, phy1 pmu reg, phy2 pmu reg */ /* phy base regs, phy1 pmu reg, phy2 pmu reg */
......
...@@ -25,7 +25,7 @@ Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt ...@@ -25,7 +25,7 @@ Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
For example: For example:
pinmux: pinmux@0x0301d0c8 { pinmux: pinmux@0301d0c8 {
compatible = "brcm,cygnus-pinmux"; compatible = "brcm,cygnus-pinmux";
reg = <0x0301d0c8 0x1b0>; reg = <0x0301d0c8 0x1b0>;
......
...@@ -96,14 +96,14 @@ For example, pinctrl might have subnodes like the following: ...@@ -96,14 +96,14 @@ For example, pinctrl might have subnodes like the following:
For a specific board, if it wants to use sd1, For a specific board, if it wants to use sd1,
it can add the following to its board-specific .dts file. it can add the following to its board-specific .dts file.
sd1: sd@0x12340000 { sd1: sd@12340000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&sd1_pmx0>; pinctrl-0 = <&sd1_pmx0>;
} }
or or
sd1: sd@0x12340000 { sd1: sd@12340000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&sd1_pmx1>; pinctrl-0 = <&sd1_pmx1>;
} }
...@@ -41,7 +41,7 @@ For example, pinctrl might have subnodes like the following: ...@@ -41,7 +41,7 @@ For example, pinctrl might have subnodes like the following:
For a specific board, if it wants to use uart2 without hardware flow control, For a specific board, if it wants to use uart2 without hardware flow control,
it can add the following to its board-specific .dts file. it can add the following to its board-specific .dts file.
uart2: uart@0xb0070000 { uart2: uart@b0070000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart2_noflow_pins_a>; pinctrl-0 = <&uart2_noflow_pins_a>;
} }
...@@ -136,7 +136,7 @@ Example for rk3188: ...@@ -136,7 +136,7 @@ Example for rk3188:
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
gpio0: gpio0@0x2000a000 { gpio0: gpio0@2000a000 {
compatible = "rockchip,rk3188-gpio-bank0"; compatible = "rockchip,rk3188-gpio-bank0";
reg = <0x2000a000 0x100>; reg = <0x2000a000 0x100>;
interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
...@@ -149,7 +149,7 @@ Example for rk3188: ...@@ -149,7 +149,7 @@ Example for rk3188:
#interrupt-cells = <2>; #interrupt-cells = <2>;
}; };
gpio1: gpio1@0x2003c000 { gpio1: gpio1@2003c000 {
compatible = "rockchip,gpio-bank"; compatible = "rockchip,gpio-bank";
reg = <0x2003c000 0x100>; reg = <0x2003c000 0x100>;
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -107,7 +107,7 @@ regulators (twl_reg1 and twl_reg2), ...@@ -107,7 +107,7 @@ regulators (twl_reg1 and twl_reg2),
... ...
}; };
mmc: mmc@0x0 { mmc: mmc@0 {
... ...
... ...
vmmc-supply = <&twl_reg1>; vmmc-supply = <&twl_reg1>;
......
...@@ -12,7 +12,7 @@ Optional properties: ...@@ -12,7 +12,7 @@ Optional properties:
Example: Example:
uart@0x4000c400 { uart@4000c400 {
compatible = "energymicro,efm32-uart"; compatible = "energymicro,efm32-uart";
reg = <0x4000c400 0x400>; reg = <0x4000c400 0x400>;
interrupts = <15>; interrupts = <15>;
......
...@@ -14,7 +14,7 @@ Required properties: ...@@ -14,7 +14,7 @@ Required properties:
Example: Example:
ps20: ps2@0x01c2a000 { ps20: ps2@01c2a000 {
compatible = "allwinner,sun4i-a10-ps2"; compatible = "allwinner,sun4i-a10-ps2";
reg = <0x01c2a000 0x400>; reg = <0x01c2a000 0x400>;
interrupts = <0 62 4>; interrupts = <0 62 4>;
......
...@@ -220,7 +220,7 @@ qmss: qmss@2a40000 { ...@@ -220,7 +220,7 @@ qmss: qmss@2a40000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
pdsp0@0x2a10000 { pdsp0@2a10000 {
reg = <0x2a10000 0x1000>, reg = <0x2a10000 0x1000>,
<0x2a0f000 0x100>, <0x2a0f000 0x100>,
<0x2a0c000 0x3c8>, <0x2a0c000 0x3c8>,
......
...@@ -21,7 +21,7 @@ please check: ...@@ -21,7 +21,7 @@ please check:
Example: Example:
i2s: i2s@0x77600000 { i2s: i2s@77600000 {
compatible = "adi,axi-i2s-1.00.a"; compatible = "adi,axi-i2s-1.00.a";
reg = <0x77600000 0x1000>; reg = <0x77600000 0x1000>;
clocks = <&clk 15>, <&audio_clock>; clocks = <&clk 15>, <&audio_clock>;
......
...@@ -20,7 +20,7 @@ please check: ...@@ -20,7 +20,7 @@ please check:
Example: Example:
spdif: spdif@0x77400000 { spdif: spdif@77400000 {
compatible = "adi,axi-spdif-tx-1.00.a"; compatible = "adi,axi-spdif-tx-1.00.a";
reg = <0x77600000 0x1000>; reg = <0x77600000 0x1000>;
clocks = <&clk 15>, <&audio_clock>; clocks = <&clk 15>, <&audio_clock>;
......
...@@ -20,7 +20,7 @@ Optional properties: ...@@ -20,7 +20,7 @@ Optional properties:
Example: Example:
&i2c { &i2c {
ak4613: ak4613@0x10 { ak4613: ak4613@10 {
compatible = "asahi-kasei,ak4613"; compatible = "asahi-kasei,ak4613";
reg = <0x10>; reg = <0x10>;
}; };
......
...@@ -17,7 +17,7 @@ Optional properties: ...@@ -17,7 +17,7 @@ Optional properties:
Example 1: Example 1:
&i2c { &i2c {
ak4648: ak4648@0x12 { ak4648: ak4648@12 {
compatible = "asahi-kasei,ak4642"; compatible = "asahi-kasei,ak4642";
reg = <0x12>; reg = <0x12>;
}; };
......
...@@ -10,7 +10,7 @@ Required properties: ...@@ -10,7 +10,7 @@ Required properties:
Example: Example:
&i2c { &i2c {
max98371: max98371@0x31 { max98371: max98371@31 {
compatible = "maxim,max98371"; compatible = "maxim,max98371";
reg = <0x31>; reg = <0x31>;
}; };
......
...@@ -10,7 +10,7 @@ Required properties: ...@@ -10,7 +10,7 @@ Required properties:
Example: Example:
&i2c { &i2c {
max9867: max9867@0x18 { max9867: max9867@18 {
compatible = "maxim,max9867"; compatible = "maxim,max9867";
reg = <0x18>; reg = <0x18>;
}; };
......
...@@ -20,7 +20,7 @@ Required properties: ...@@ -20,7 +20,7 @@ Required properties:
Example: Example:
sh_fsi2: sh_fsi2@0xec230000 { sh_fsi2: sh_fsi2@ec230000 {
compatible = "renesas,sh_fsi2"; compatible = "renesas,sh_fsi2";
reg = <0xec230000 0x400>; reg = <0xec230000 0x400>;
interrupts = <0 146 0x4>; interrupts = <0 146 0x4>;
......
...@@ -33,7 +33,7 @@ Required properties on RK3288: ...@@ -33,7 +33,7 @@ Required properties on RK3288:
Example for the rk3188 SPDIF controller: Example for the rk3188 SPDIF controller:
spdif: spdif@0x1011e000 { spdif: spdif@1011e000 {
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif"; compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
reg = <0x1011e000 0x2000>; reg = <0x1011e000 0x2000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -51,7 +51,7 @@ Optional properties: ...@@ -51,7 +51,7 @@ Optional properties:
Example: Example:
sti_uni_player1: sti-uni-player@0x8D81000 { sti_uni_player1: sti-uni-player@8D81000 {
compatible = "st,stih407-uni-player-hdmi"; compatible = "st,stih407-uni-player-hdmi";
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
st,syscfg = <&syscfg_core>; st,syscfg = <&syscfg_core>;
...@@ -63,7 +63,7 @@ Example: ...@@ -63,7 +63,7 @@ Example:
st,tdm-mode = <1>; st,tdm-mode = <1>;
}; };
sti_uni_player2: sti-uni-player@0x8D82000 { sti_uni_player2: sti-uni-player@8D82000 {
compatible = "st,stih407-uni-player-pcm-out"; compatible = "st,stih407-uni-player-pcm-out";
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
st,syscfg = <&syscfg_core>; st,syscfg = <&syscfg_core>;
...@@ -74,7 +74,7 @@ Example: ...@@ -74,7 +74,7 @@ Example:
dma-names = "tx"; dma-names = "tx";
}; };
sti_uni_player3: sti-uni-player@0x8D85000 { sti_uni_player3: sti-uni-player@8D85000 {
compatible = "st,stih407-uni-player-spdif"; compatible = "st,stih407-uni-player-spdif";
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
st,syscfg = <&syscfg_core>; st,syscfg = <&syscfg_core>;
...@@ -85,7 +85,7 @@ Example: ...@@ -85,7 +85,7 @@ Example:
dma-names = "tx"; dma-names = "tx";
}; };
sti_uni_reader1: sti-uni-reader@0x8D84000 { sti_uni_reader1: sti-uni-reader@8D84000 {
compatible = "st,stih407-uni-reader-hdmi"; compatible = "st,stih407-uni-reader-hdmi";
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
st,syscfg = <&syscfg_core>; st,syscfg = <&syscfg_core>;
......
...@@ -19,7 +19,7 @@ Recommended properties : ...@@ -19,7 +19,7 @@ Recommended properties :
Example: Example:
spi1: spi@0x4000c400 { /* USART1 */ spi1: spi@4000c400 { /* USART1 */
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
compatible = "energymicro,efm32-spi"; compatible = "energymicro,efm32-spi";
......
...@@ -239,7 +239,7 @@ cpus { ...@@ -239,7 +239,7 @@ cpus {
* A simple fan controller which supports 10 speeds of operation * A simple fan controller which supports 10 speeds of operation
* (represented as 0-9). * (represented as 0-9).
*/ */
fan0: fan@0x48 { fan0: fan@48 {
... ...
cooling-min-level = <0>; cooling-min-level = <0>;
cooling-max-level = <9>; cooling-max-level = <9>;
...@@ -252,7 +252,7 @@ ocp { ...@@ -252,7 +252,7 @@ ocp {
/* /*
* A simple IC with a single bandgap temperature sensor. * A simple IC with a single bandgap temperature sensor.
*/ */
bandgap0: bandgap@0x0000ED00 { bandgap0: bandgap@0000ED00 {
... ...
#thermal-sensor-cells = <0>; #thermal-sensor-cells = <0>;
}; };
...@@ -330,7 +330,7 @@ ocp { ...@@ -330,7 +330,7 @@ ocp {
/* /*
* A simple IC with several bandgap temperature sensors. * A simple IC with several bandgap temperature sensors.
*/ */
bandgap0: bandgap@0x0000ED00 { bandgap0: bandgap@0000ED00 {
... ...
#thermal-sensor-cells = <1>; #thermal-sensor-cells = <1>;
}; };
...@@ -447,7 +447,7 @@ one thermal zone. ...@@ -447,7 +447,7 @@ one thermal zone.
/* /*
* A simple IC with a single temperature sensor. * A simple IC with a single temperature sensor.
*/ */
adc: sensor@0x49 { adc: sensor@49 {
... ...
#thermal-sensor-cells = <0>; #thermal-sensor-cells = <0>;
}; };
...@@ -458,7 +458,7 @@ ocp { ...@@ -458,7 +458,7 @@ ocp {
/* /*
* A simple IC with a single bandgap temperature sensor. * A simple IC with a single bandgap temperature sensor.
*/ */
bandgap0: bandgap@0x0000ED00 { bandgap0: bandgap@0000ED00 {
... ...
#thermal-sensor-cells = <0>; #thermal-sensor-cells = <0>;
}; };
...@@ -516,7 +516,7 @@ with many sensors and many cooling devices. ...@@ -516,7 +516,7 @@ with many sensors and many cooling devices.
/* /*
* An IC with several temperature sensor. * An IC with several temperature sensor.
*/ */
adc_dummy: sensor@0x50 { adc_dummy: sensor@50 {
... ...
#thermal-sensor-cells = <1>; /* sensor internal ID */ #thermal-sensor-cells = <1>; /* sensor internal ID */
}; };
......
...@@ -32,7 +32,7 @@ Optional properties: ...@@ -32,7 +32,7 @@ Optional properties:
Example: Example:
ufsphy1: ufsphy@0xfc597000 { ufsphy1: ufsphy@fc597000 {
compatible = "qcom,ufs-phy-qmp-20nm"; compatible = "qcom,ufs-phy-qmp-20nm";
reg = <0xfc597000 0x800>; reg = <0xfc597000 0x800>;
reg-names = "phy_mem"; reg-names = "phy_mem";
...@@ -53,7 +53,7 @@ Example: ...@@ -53,7 +53,7 @@ Example:
<&clock_gcc clk_gcc_ufs_rx_cfg_clk>; <&clock_gcc clk_gcc_ufs_rx_cfg_clk>;
}; };
ufshc@0xfc598000 { ufshc@fc598000 {
... ...
phys = <&ufsphy1>; phys = <&ufsphy1>;
phy-names = "ufsphy"; phy-names = "ufsphy";
......
...@@ -46,7 +46,7 @@ Note: If above properties are not defined it can be assumed that the supply ...@@ -46,7 +46,7 @@ Note: If above properties are not defined it can be assumed that the supply
regulators or clocks are always on. regulators or clocks are always on.
Example: Example:
ufshc@0xfc598000 { ufshc@fc598000 {
compatible = "jedec,ufs-1.1"; compatible = "jedec,ufs-1.1";
reg = <0xfc598000 0x800>; reg = <0xfc598000 0x800>;
interrupts = <0 28 0>; interrupts = <0 28 0>;
......
...@@ -22,7 +22,7 @@ See: Documentation/devicetree/bindings/reset/reset.txt ...@@ -22,7 +22,7 @@ See: Documentation/devicetree/bindings/reset/reset.txt
Example: Example:
ehci1: usb@0xfe203e00 { ehci1: usb@fe203e00 {
compatible = "st,st-ehci-300x"; compatible = "st,st-ehci-300x";
reg = <0xfe203e00 0x100>; reg = <0xfe203e00 0x100>;
interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>; interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>;
......
...@@ -20,7 +20,7 @@ See: Documentation/devicetree/bindings/reset/reset.txt ...@@ -20,7 +20,7 @@ See: Documentation/devicetree/bindings/reset/reset.txt
Example: Example:
ohci0: usb@0xfe1ffc00 { ohci0: usb@fe1ffc00 {
compatible = "st,st-ohci-300x"; compatible = "st,st-ohci-300x";
reg = <0xfe1ffc00 0x100>; reg = <0xfe1ffc00 0x100>;
interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>; interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>;
......
...@@ -6,7 +6,7 @@ reg: Register address and length for watchdog registers ...@@ -6,7 +6,7 @@ reg: Register address and length for watchdog registers
Example: Example:
watchdog: jz4740-watchdog@0x10002000 { watchdog: jz4740-watchdog@10002000 {
compatible = "ingenic,jz4740-watchdog"; compatible = "ingenic,jz4740-watchdog";
reg = <0x10002000 0x100>; reg = <0x10002000 0x100>;
}; };
...@@ -695,7 +695,7 @@ int __of_changeset_apply_entries(struct of_changeset *ocs, int *ret_revert) ...@@ -695,7 +695,7 @@ int __of_changeset_apply_entries(struct of_changeset *ocs, int *ret_revert)
/* /*
* Returns 0 on success, a negative error value in case of an error. * Returns 0 on success, a negative error value in case of an error.
* *
* If multiple changset entry notification errors occur then only the * If multiple changeset entry notification errors occur then only the
* final notification error is reported. * final notification error is reported.
*/ */
int __of_changeset_apply_notify(struct of_changeset *ocs) int __of_changeset_apply_notify(struct of_changeset *ocs)
...@@ -795,7 +795,7 @@ int __of_changeset_revert_entries(struct of_changeset *ocs, int *ret_apply) ...@@ -795,7 +795,7 @@ int __of_changeset_revert_entries(struct of_changeset *ocs, int *ret_apply)
} }
/* /*
* If multiple changset entry notification errors occur then only the * If multiple changeset entry notification errors occur then only the
* final notification error is reported. * final notification error is reported.
*/ */
int __of_changeset_revert_notify(struct of_changeset *ocs) int __of_changeset_revert_notify(struct of_changeset *ocs)
......
...@@ -522,7 +522,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs, ...@@ -522,7 +522,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
struct device_node *node, *overlay_node; struct device_node *node, *overlay_node;
struct fragment *fragment; struct fragment *fragment;
struct fragment *fragments; struct fragment *fragments;
int cnt, ret; int cnt, id, ret;
/* /*
* Warn for some issues. Can not return -EINVAL for these until * Warn for some issues. Can not return -EINVAL for these until
...@@ -543,9 +543,9 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs, ...@@ -543,9 +543,9 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
of_changeset_init(&ovcs->cset); of_changeset_init(&ovcs->cset);
ovcs->id = idr_alloc(&ovcs_idr, ovcs, 1, 0, GFP_KERNEL); id = idr_alloc(&ovcs_idr, ovcs, 1, 0, GFP_KERNEL);
if (ovcs->id <= 0) if (id <= 0)
return ovcs->id; return id;
cnt = 0; cnt = 0;
...@@ -572,18 +572,20 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs, ...@@ -572,18 +572,20 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
cnt = 0; cnt = 0;
for_each_child_of_node(tree, node) { for_each_child_of_node(tree, node) {
overlay_node = of_get_child_by_name(node, "__overlay__");
if (!overlay_node)
continue;
fragment = &fragments[cnt]; fragment = &fragments[cnt];
fragment->overlay = of_get_child_by_name(node, "__overlay__"); fragment->overlay = overlay_node;
if (fragment->overlay) {
fragment->target = find_target_node(node); fragment->target = find_target_node(node);
if (!fragment->target) { if (!fragment->target) {
of_node_put(fragment->overlay); of_node_put(fragment->overlay);
ret = -EINVAL; ret = -EINVAL;
goto err_free_fragments; goto err_free_fragments;
} else {
cnt++;
}
} }
cnt++;
} }
/* /*
...@@ -611,6 +613,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs, ...@@ -611,6 +613,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
goto err_free_fragments; goto err_free_fragments;
} }
ovcs->id = id;
ovcs->count = cnt; ovcs->count = cnt;
ovcs->fragments = fragments; ovcs->fragments = fragments;
...@@ -619,7 +622,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs, ...@@ -619,7 +622,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
err_free_fragments: err_free_fragments:
kfree(fragments); kfree(fragments);
err_free_idr: err_free_idr:
idr_remove(&ovcs_idr, ovcs->id); idr_remove(&ovcs_idr, id);
pr_err("%s() failed, ret = %d\n", __func__, ret); pr_err("%s() failed, ret = %d\n", __func__, ret);
...@@ -630,8 +633,7 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs) ...@@ -630,8 +633,7 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs)
{ {
int i; int i;
if (!ovcs->cset.entries.next) if (ovcs->cset.entries.next)
return;
of_changeset_destroy(&ovcs->cset); of_changeset_destroy(&ovcs->cset);
if (ovcs->id) if (ovcs->id)
...@@ -660,14 +662,14 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs) ...@@ -660,14 +662,14 @@ static void free_overlay_changeset(struct overlay_changeset *ovcs)
* A non-zero return value will not have created the changeset if error is from: * A non-zero return value will not have created the changeset if error is from:
* - parameter checks * - parameter checks
* - building the changeset * - building the changeset
* - overlay changset pre-apply notifier * - overlay changeset pre-apply notifier
* *
* If an error is returned by an overlay changeset pre-apply notifier * If an error is returned by an overlay changeset pre-apply notifier
* then no further overlay changeset pre-apply notifier will be called. * then no further overlay changeset pre-apply notifier will be called.
* *
* A non-zero return value will have created the changeset if error is from: * A non-zero return value will have created the changeset if error is from:
* - overlay changeset entry notifier * - overlay changeset entry notifier
* - overlay changset post-apply notifier * - overlay changeset post-apply notifier
* *
* If an error is returned by an overlay changeset post-apply notifier * If an error is returned by an overlay changeset post-apply notifier
* then no further overlay changeset post-apply notifier will be called. * then no further overlay changeset post-apply notifier will be called.
...@@ -706,12 +708,11 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id) ...@@ -706,12 +708,11 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id)
} }
of_overlay_mutex_lock(); of_overlay_mutex_lock();
mutex_lock(&of_mutex);
ret = of_resolve_phandles(tree); ret = of_resolve_phandles(tree);
if (ret) if (ret)
goto err_overlay_unlock; goto err_free_overlay_changeset;
mutex_lock(&of_mutex);
ret = init_overlay_changeset(ovcs, tree); ret = init_overlay_changeset(ovcs, tree);
if (ret) if (ret)
...@@ -736,13 +737,12 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id) ...@@ -736,13 +737,12 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id)
devicetree_state_flags |= DTSF_APPLY_FAIL; devicetree_state_flags |= DTSF_APPLY_FAIL;
} }
goto err_free_overlay_changeset; goto err_free_overlay_changeset;
} else { }
ret = __of_changeset_apply_notify(&ovcs->cset); ret = __of_changeset_apply_notify(&ovcs->cset);
if (ret) if (ret)
pr_err("overlay changeset entry notify error %d\n", pr_err("overlay changeset entry notify error %d\n", ret);
ret); /* notify failure is not fatal, continue */
/* fall through */
}
list_add_tail(&ovcs->ovcs_list, &ovcs_list); list_add_tail(&ovcs->ovcs_list, &ovcs_list);
*ovcs_id = ovcs->id; *ovcs_id = ovcs->id;
...@@ -755,18 +755,14 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id) ...@@ -755,18 +755,14 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id)
ret = ret_tmp; ret = ret_tmp;
} }
mutex_unlock(&of_mutex); goto out_unlock;
of_overlay_mutex_unlock();
goto out;
err_overlay_unlock:
of_overlay_mutex_unlock();
err_free_overlay_changeset: err_free_overlay_changeset:
free_overlay_changeset(ovcs); free_overlay_changeset(ovcs);
out_unlock:
mutex_unlock(&of_mutex); mutex_unlock(&of_mutex);
of_overlay_mutex_unlock();
out: out:
pr_debug("%s() err=%d\n", __func__, ret); pr_debug("%s() err=%d\n", __func__, ret);
...@@ -871,7 +867,7 @@ static int overlay_removal_is_ok(struct overlay_changeset *remove_ovcs) ...@@ -871,7 +867,7 @@ static int overlay_removal_is_ok(struct overlay_changeset *remove_ovcs)
* *
* A non-zero return value will not revert the changeset if error is from: * A non-zero return value will not revert the changeset if error is from:
* - parameter checks * - parameter checks
* - overlay changset pre-remove notifier * - overlay changeset pre-remove notifier
* - overlay changeset entry revert * - overlay changeset entry revert
* *
* If an error is returned by an overlay changeset pre-remove notifier * If an error is returned by an overlay changeset pre-remove notifier
...@@ -882,7 +878,7 @@ static int overlay_removal_is_ok(struct overlay_changeset *remove_ovcs) ...@@ -882,7 +878,7 @@ static int overlay_removal_is_ok(struct overlay_changeset *remove_ovcs)
* *
* A non-zero return value will revert the changeset if error is from: * A non-zero return value will revert the changeset if error is from:
* - overlay changeset entry notifier * - overlay changeset entry notifier
* - overlay changset post-remove notifier * - overlay changeset post-remove notifier
* *
* If an error is returned by an overlay changeset post-remove notifier * If an error is returned by an overlay changeset post-remove notifier
* then no further overlay changeset post-remove notifier will be called. * then no further overlay changeset post-remove notifier will be called.
...@@ -931,15 +927,13 @@ int of_overlay_remove(int *ovcs_id) ...@@ -931,15 +927,13 @@ int of_overlay_remove(int *ovcs_id)
if (ret_apply) if (ret_apply)
devicetree_state_flags |= DTSF_REVERT_FAIL; devicetree_state_flags |= DTSF_REVERT_FAIL;
goto out_unlock; goto out_unlock;
} else {
ret = __of_changeset_revert_notify(&ovcs->cset);
if (ret) {
pr_err("overlay changeset entry notify error %d\n",
ret);
/* fall through - changeset was reverted */
}
} }
ret = __of_changeset_revert_notify(&ovcs->cset);
if (ret)
pr_err("overlay changeset entry notify error %d\n", ret);
/* notify failure is not fatal, continue */
*ovcs_id = 0; *ovcs_id = 0;
ret_tmp = overlay_notify(ovcs, OF_OVERLAY_POST_REMOVE); ret_tmp = overlay_notify(ovcs, OF_OVERLAY_POST_REMOVE);
......
...@@ -2165,7 +2165,6 @@ static int __init overlay_data_add(int onum) ...@@ -2165,7 +2165,6 @@ static int __init overlay_data_add(int onum)
ret = of_overlay_apply(info->np_overlay, &info->overlay_id); ret = of_overlay_apply(info->np_overlay, &info->overlay_id);
if (ret < 0) { if (ret < 0) {
pr_err("of_overlay_apply() (ret=%d), %d\n", ret, onum); pr_err("of_overlay_apply() (ret=%d), %d\n", ret, onum);
of_overlay_mutex_unlock();
goto out_free_np_overlay; goto out_free_np_overlay;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment