Commit 6df8b74b authored by Linus Torvalds's avatar Linus Torvalds

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

Pull DeviceTree updates from Rob Herring:

 - add various vendor prefixes.

 - fix NUMA node handling when "numa=off" is passed on kernel command
   line.

 - coding style Clean-up of overlay handling code.

 - DocBook fixes in DT platform driver code

 - Altera SoCFPGA binding addtions for freeze bridge, arria10 FPGA
   manager and FPGA bridges.

 - a couple of printk message fixes.

* tag 'devicetree-for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (33 commits)
  dt: pwm: bcm2835: fix typo in clocks property name
  devicetree: add vendor prefix for National Instruments
  Revert "of: base: add support to get machine model name"
  of: Fix issue where code would fall through to error case.
  drivers/of: fix missing pr_cont()s in of_print_phandle_args
  devicetree: bindings: Add vendor prefix for Oki
  devicetree: bindings: Add vendor prefix for Andes Technology Corporation
  dt-bindings: add MYIR Tech hardware vendor prefix
  add bindings document for altera freeze bridge
  ARM: socfpga: add bindings doc for arria10 fpga manager
  ARM: socfpga: add bindings document for fpga bridge drivers
  of: base: add support to get machine model name
  of/platform: clarify of_find_device_by_node refcounting
  of/platform: fix of_platform_device_destroy comment
  of: Remove unused variable overlay_symbols
  of: Move setting of pointer to beside test for non-null
  of: Add back an error message, restructured
  of: Update comments to reflect changes and increase clarity
  of: Remove redundant size check
  of: Update structure of code to be clearer, also remove BUG_ON()
  ...
parents 57d64e6f 61eb3a04
...@@ -148,11 +148,12 @@ Example: ...@@ -148,11 +148,12 @@ Example:
/dts-v1/; /dts-v1/;
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include "skeleton.dtsi"
/ { / {
model = "ARM RealView PB1176 with device tree"; model = "ARM RealView PB1176 with device tree";
compatible = "arm,realview-pb1176"; compatible = "arm,realview-pb1176";
#address-cells = <1>;
#size-cells = <1>;
soc { soc {
#address-cells = <1>; #address-cells = <1>;
......
Altera FPGA To SDRAM Bridge Driver
Required properties:
- compatible : Should contain "altr,socfpga-fpga2sdram-bridge"
Optional properties:
- bridge-enable : 0 if driver should disable bridge at startup
1 if driver should enable bridge at startup
Default is to leave bridge in current state.
Example:
fpga_bridge3: fpga-bridge@ffc25080 {
compatible = "altr,socfpga-fpga2sdram-bridge";
reg = <0xffc25080 0x4>;
bridge-enable = <0>;
};
Altera Freeze Bridge Controller Driver
The Altera Freeze Bridge Controller manages one or more freeze bridges.
The controller can freeze/disable the bridges which prevents signal
changes from passing through the bridge. The controller can also
unfreeze/enable the bridges which allows traffic to pass through the
bridge normally.
Required properties:
- compatible : Should contain "altr,freeze-bridge-controller"
- regs : base address and size for freeze bridge module
Optional properties:
- bridge-enable : 0 if driver should disable bridge at startup
1 if driver should enable bridge at startup
Default is to leave bridge in current state.
Example:
freeze-controller@100000450 {
compatible = "altr,freeze-bridge-controller";
regs = <0x1000 0x10>;
bridge-enable = <0>;
};
Altera FPGA/HPS Bridge Driver
Required properties:
- regs : base address and size for AXI bridge module
- compatible : Should contain one of:
"altr,socfpga-lwhps2fpga-bridge",
"altr,socfpga-hps2fpga-bridge", or
"altr,socfpga-fpga2hps-bridge"
- resets : Phandle and reset specifier for this bridge's reset
- clocks : Clocks used by this module.
Optional properties:
- bridge-enable : 0 if driver should disable bridge at startup.
1 if driver should enable bridge at startup.
Default is to leave bridge in its current state.
Example:
fpga_bridge0: fpga-bridge@ff400000 {
compatible = "altr,socfpga-lwhps2fpga-bridge";
reg = <0xff400000 0x100000>;
resets = <&rst LWHPS2FPGA_RESET>;
clocks = <&l4_main_clk>;
bridge-enable = <0>;
};
fpga_bridge1: fpga-bridge@ff500000 {
compatible = "altr,socfpga-hps2fpga-bridge";
reg = <0xff500000 0x10000>;
resets = <&rst HPS2FPGA_RESET>;
clocks = <&l4_main_clk>;
bridge-enable = <1>;
};
fpga_bridge2: fpga-bridge@ff600000 {
compatible = "altr,socfpga-fpga2hps-bridge";
reg = <0xff600000 0x100000>;
resets = <&rst FPGA2HPS_RESET>;
clocks = <&l4_main_clk>;
};
Altera SOCFPGA Arria10 FPGA Manager
Required properties:
- compatible : should contain "altr,socfpga-a10-fpga-mgr"
- reg : base address and size for memory mapped io.
- The first index is for FPGA manager register access.
- The second index is for writing FPGA configuration data.
- resets : Phandle and reset specifier for the device's reset.
- clocks : Clocks used by the device.
Example:
fpga_mgr: fpga-mgr@ffd03000 {
compatible = "altr,socfpga-a10-fpga-mgr";
reg = <0xffd03000 0x100
0xffcfe400 0x20>;
clocks = <&l4_mp_clk>;
resets = <&rst FPGAMGR_RESET>;
};
...@@ -3,7 +3,7 @@ BCM2835 PWM controller (Raspberry Pi controller) ...@@ -3,7 +3,7 @@ BCM2835 PWM controller (Raspberry Pi controller)
Required properties: Required properties:
- compatible: should be "brcm,bcm2835-pwm" - compatible: should be "brcm,bcm2835-pwm"
- reg: physical base address and length of the controller's registers - reg: physical base address and length of the controller's registers
- clock: This clock defines the base clock frequency of the PWM hardware - clocks: This clock defines the base clock frequency of the PWM hardware
system, the period and the duty_cycle of the PWM signal is a multiple of system, the period and the duty_cycle of the PWM signal is a multiple of
the base period. the base period.
- #pwm-cells: Should be 2. See pwm.txt in this directory for a description of - #pwm-cells: Should be 2. See pwm.txt in this directory for a description of
......
...@@ -24,9 +24,11 @@ ampire Ampire Co., Ltd. ...@@ -24,9 +24,11 @@ ampire Ampire Co., Ltd.
ams AMS AG ams AMS AG
amstaos AMS-Taos Inc. amstaos AMS-Taos Inc.
analogix Analogix Semiconductor, Inc. analogix Analogix Semiconductor, Inc.
andestech Andes Technology Corporation
apm Applied Micro Circuits Corporation (APM) apm Applied Micro Circuits Corporation (APM)
aptina Aptina Imaging aptina Aptina Imaging
arasan Arasan Chip Systems arasan Arasan Chip Systems
aries Aries Embedded GmbH
arm ARM Ltd. arm ARM Ltd.
armadeus ARMadeus Systems SARL armadeus ARMadeus Systems SARL
arrow Arrow Electronics arrow Arrow Electronics
...@@ -161,6 +163,7 @@ lg LG Corporation ...@@ -161,6 +163,7 @@ lg LG Corporation
linux Linux-specific binding linux Linux-specific binding
lltc Linear Technology Corporation lltc Linear Technology Corporation
lsi LSI Corp. (LSI Logic) lsi LSI Corp. (LSI Logic)
macnica Macnica Americas
marvell Marvell Technology Group Ltd. marvell Marvell Technology Group Ltd.
maxim Maxim Integrated Products maxim Maxim Integrated Products
mcube mCube mcube mCube
...@@ -186,6 +189,7 @@ mti Imagination Technologies Ltd. (formerly MIPS Technologies Inc.) ...@@ -186,6 +189,7 @@ mti Imagination Technologies Ltd. (formerly MIPS Technologies Inc.)
mundoreader Mundo Reader S.L. mundoreader Mundo Reader S.L.
murata Murata Manufacturing Co., Ltd. murata Murata Manufacturing Co., Ltd.
mxicy Macronix International Co., Ltd. mxicy Macronix International Co., Ltd.
myir MYIR Tech Limited
national National Semiconductor national National Semiconductor
nec NEC LCD Technologies, Ltd. nec NEC LCD Technologies, Ltd.
neonode Neonode Inc. neonode Neonode Inc.
...@@ -193,13 +197,15 @@ netgear NETGEAR ...@@ -193,13 +197,15 @@ netgear NETGEAR
netlogic Broadcom Corporation (formerly NetLogic Microsystems) netlogic Broadcom Corporation (formerly NetLogic Microsystems)
netxeon Shenzhen Netxeon Technology CO., LTD netxeon Shenzhen Netxeon Technology CO., LTD
newhaven Newhaven Display International newhaven Newhaven Display International
nvd New Vision Display ni National Instruments
nintendo Nintendo nintendo Nintendo
nokia Nokia nokia Nokia
nuvoton Nuvoton Technology Corporation nuvoton Nuvoton Technology Corporation
nvd New Vision Display
nvidia NVIDIA nvidia NVIDIA
nxp NXP Semiconductors nxp NXP Semiconductors
okaya Okaya Electric America, Inc. okaya Okaya Electric America, Inc.
oki Oki Electric Industry Co., Ltd.
olimex OLIMEX Ltd. olimex OLIMEX Ltd.
onion Onion Corporation onion Onion Corporation
onnn ON Semiconductor Corp. onnn ON Semiconductor Corp.
...@@ -238,6 +244,7 @@ richtek Richtek Technology Corporation ...@@ -238,6 +244,7 @@ richtek Richtek Technology Corporation
ricoh Ricoh Co. Ltd. ricoh Ricoh Co. Ltd.
rockchip Fuzhou Rockchip Electronics Co., Ltd rockchip Fuzhou Rockchip Electronics Co., Ltd
samsung Samsung Semiconductor samsung Samsung Semiconductor
samtec Samtec/Softing company
sandisk Sandisk Corporation sandisk Sandisk Corporation
sbs Smart Battery System sbs Smart Battery System
schindler Schindler schindler Schindler
...@@ -282,6 +289,7 @@ tcg Trusted Computing Group ...@@ -282,6 +289,7 @@ tcg Trusted Computing Group
tcl Toby Churchill Ltd. tcl Toby Churchill Ltd.
technexion TechNexion technexion TechNexion
technologic Technologic Systems technologic Technologic Systems
terasic Terasic Inc.
thine THine Electronics, Inc. thine THine Electronics, Inc.
ti Texas Instruments ti Texas Instruments
tlm Trusted Logic Mobility tlm Trusted Logic Mobility
...@@ -296,6 +304,7 @@ tronfy Tronfy ...@@ -296,6 +304,7 @@ tronfy Tronfy
tronsmart Tronsmart tronsmart Tronsmart
truly Truly Semiconductors Limited truly Truly Semiconductors Limited
tyan Tyan Computer Corporation tyan Tyan Computer Corporation
udoo Udoo
uniwest United Western Technologies Corp (UniWest) uniwest United Western Technologies Corp (UniWest)
upisemi uPI Semiconductor Corp. upisemi uPI Semiconductor Corp.
urt United Radiant Technology Corporation urt United Radiant Technology Corporation
......
...@@ -1534,9 +1534,12 @@ void of_print_phandle_args(const char *msg, const struct of_phandle_args *args) ...@@ -1534,9 +1534,12 @@ void of_print_phandle_args(const char *msg, const struct of_phandle_args *args)
{ {
int i; int i;
printk("%s %s", msg, of_node_full_name(args->np)); printk("%s %s", msg, of_node_full_name(args->np));
for (i = 0; i < args->args_count; i++) for (i = 0; i < args->args_count; i++) {
printk(i ? ",%08x" : ":%08x", args->args[i]); const char delim = i ? ',' : ':';
printk("\n");
pr_cont("%c%08x", delim, args->args[i]);
}
pr_cont("\n");
} }
int of_phandle_iterator_init(struct of_phandle_iterator *it, int of_phandle_iterator_init(struct of_phandle_iterator *it,
......
...@@ -176,7 +176,12 @@ int of_node_to_nid(struct device_node *device) ...@@ -176,7 +176,12 @@ int of_node_to_nid(struct device_node *device)
np->name); np->name);
of_node_put(np); of_node_put(np);
if (!r) /*
* If numa=off passed on command line, or with a defective
* device tree, the nid may not be in the set of possible
* nodes. Check for this case and return NUMA_NO_NODE.
*/
if (!r && nid < MAX_NUMNODES && node_possible(nid))
return nid; return nid;
return NUMA_NO_NODE; return NUMA_NO_NODE;
......
...@@ -45,6 +45,9 @@ static int of_dev_node_match(struct device *dev, void *data) ...@@ -45,6 +45,9 @@ static int of_dev_node_match(struct device *dev, void *data)
* of_find_device_by_node - Find the platform_device associated with a node * of_find_device_by_node - Find the platform_device associated with a node
* @np: Pointer to device tree node * @np: Pointer to device tree node
* *
* Takes a reference to the embedded struct device which needs to be dropped
* after use.
*
* Returns platform_device pointer, or NULL if not found * Returns platform_device pointer, or NULL if not found
*/ */
struct platform_device *of_find_device_by_node(struct device_node *np) struct platform_device *of_find_device_by_node(struct device_node *np)
...@@ -558,9 +561,6 @@ static int of_platform_device_destroy(struct device *dev, void *data) ...@@ -558,9 +561,6 @@ static int of_platform_device_destroy(struct device *dev, void *data)
* of the given device (and, recurrently, their children) that have been * of the given device (and, recurrently, their children) that have been
* created from their respective device tree nodes (and only those, * created from their respective device tree nodes (and only those,
* leaving others - eg. manually created - unharmed). * leaving others - eg. manually created - unharmed).
*
* Returns 0 when all children devices have been removed or
* -EBUSY when some children remained.
*/ */
void of_platform_depopulate(struct device *parent) void of_platform_depopulate(struct device *parent)
{ {
......
This diff is collapsed.
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