aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-02 17:27:15 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-02 17:27:15 -0400
commitb9f2b21a32906a47c220b5167b88869f2c90f1c4 (patch)
tree96416cec877f9c1f2ee0f0ccdee64e38cc8e0683 /Documentation
parent70f6c087573eeb406252ff8d98f511eb5f71496e (diff)
parenta0e7398357f297dd22d043fb2d5aa1c44d61ca10 (diff)
Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux
Pull devicetree changes from Grant Likely: "Updates to devicetree core code. This branch contains the following notable changes: - add reserved memory binding - make struct device_node a kobject and remove legacy /proc/device-tree - ePAPR conformance fixes - update in-kernel DTC copy to version v1.4.0 - preparatory changes for dynamic device tree overlays - minor bug fixes and documentation changes The most significant change in this branch is the conversion of struct device_node to be a kobject that is exposed via sysfs and removal of the old /proc/device-tree code. This simplifies the device tree handling code and tightens up the lifecycle on device tree nodes. [updated: added fix for dangling select PROC_DEVICETREE]" * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux: (29 commits) dt: Remove dangling "select PROC_DEVICETREE" of: Add support for ePAPR "stdout-path" property of: device_node kobject lifecycle fixes of: only scan for reserved mem when fdt present powerpc: add support for reserved memory defined by device tree arm64: add support for reserved memory defined by device tree of: add missing major vendors of: add vendor prefix for SMSC of: remove /proc/device-tree of/selftest: Add self tests for manipulation of properties of: Make device nodes kobjects so they show up in sysfs arm: add support for reserved memory defined by device tree drivers: of: add support for custom reserved memory drivers drivers: of: add initialization code for dynamic reserved memory drivers: of: add initialization code for static reserved memory of: document bindings for reserved-memory nodes Revert "of: fix of_update_property()" kbuild: dtbs_install: new make target ARM: mvebu: Allows to get the SoC ID even without PCI enabled of: Allows to use the PCI translator without the PCI core ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-ofw28
-rw-r--r--Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt133
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt17
3 files changed, 178 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-firmware-ofw b/Documentation/ABI/testing/sysfs-firmware-ofw
new file mode 100644
index 000000000000..f562b188e71d
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-firmware-ofw
@@ -0,0 +1,28 @@
1What: /sys/firmware/devicetree/*
2Date: November 2013
3Contact: Grant Likely <grant.likely@linaro.org>
4Description:
5 When using OpenFirmware or a Flattened Device Tree to enumerate
6 hardware, the device tree structure will be exposed in this
7 directory.
8
9 It is possible for multiple device-tree directories to exist.
10 Some device drivers use a separate detached device tree which
11 have no attachment to the system tree and will appear in a
12 different subdirectory under /sys/firmware/devicetree.
13
14 Userspace must not use the /sys/firmware/devicetree/base
15 path directly, but instead should follow /proc/device-tree
16 symlink. It is possible that the absolute path will change
17 in the future, but the symlink is the stable ABI.
18
19 The /proc/device-tree symlink replaces the devicetree /proc
20 filesystem support, and has largely the same semantics and
21 should be compatible with existing userspace.
22
23 The contents of /sys/firmware/devicetree/ is a
24 hierarchy of directories, one per device tree node. The
25 directory name is the resolved path component name (node
26 name plus address). Properties are represented as files
27 in the directory. The contents of each file is the exact
28 binary data from the device tree.
diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
new file mode 100644
index 000000000000..3da0ebdba8d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
@@ -0,0 +1,133 @@
1*** Reserved memory regions ***
2
3Reserved memory is specified as a node under the /reserved-memory node.
4The operating system shall exclude reserved memory from normal usage
5one can create child nodes describing particular reserved (excluded from
6normal use) memory regions. Such memory regions are usually designed for
7the special usage by various device drivers.
8
9Parameters for each memory region can be encoded into the device tree
10with the following nodes:
11
12/reserved-memory node
13---------------------
14#address-cells, #size-cells (required) - standard definition
15 - Should use the same values as the root node
16ranges (required) - standard definition
17 - Should be empty
18
19/reserved-memory/ child nodes
20-----------------------------
21Each child of the reserved-memory node specifies one or more regions of
22reserved memory. Each child node may either use a 'reg' property to
23specify a specific range of reserved memory, or a 'size' property with
24optional constraints to request a dynamically allocated block of memory.
25
26Following the generic-names recommended practice, node names should
27reflect the purpose of the node (ie. "framebuffer" or "dma-pool"). Unit
28address (@<address>) should be appended to the name if the node is a
29static allocation.
30
31Properties:
32Requires either a) or b) below.
33a) static allocation
34 reg (required) - standard definition
35b) dynamic allocation
36 size (required) - length based on parent's #size-cells
37 - Size in bytes of memory to reserve.
38 alignment (optional) - length based on parent's #size-cells
39 - Address boundary for alignment of allocation.
40 alloc-ranges (optional) - prop-encoded-array (address, length pairs).
41 - Specifies regions of memory that are
42 acceptable to allocate from.
43
44If both reg and size are present, then the reg property takes precedence
45and size is ignored.
46
47Additional properties:
48compatible (optional) - standard definition
49 - may contain the following strings:
50 - shared-dma-pool: This indicates a region of memory meant to be
51 used as a shared pool of DMA buffers for a set of devices. It can
52 be used by an operating system to instanciate the necessary pool
53 management subsystem if necessary.
54 - vendor specific string in the form <vendor>,[<device>-]<usage>
55no-map (optional) - empty property
56 - Indicates the operating system must not create a virtual mapping
57 of the region as part of its standard mapping of system memory,
58 nor permit speculative access to it under any circumstances other
59 than under the control of the device driver using the region.
60reusable (optional) - empty property
61 - The operating system can use the memory in this region with the
62 limitation that the device driver(s) owning the region need to be
63 able to reclaim it back. Typically that means that the operating
64 system can use that region to store volatile or cached data that
65 can be otherwise regenerated or migrated elsewhere.
66
67Linux implementation note:
68- If a "linux,cma-default" property is present, then Linux will use the
69 region for the default pool of the contiguous memory allocator.
70
71Device node references to reserved memory
72-----------------------------------------
73Regions in the /reserved-memory node may be referenced by other device
74nodes by adding a memory-region property to the device node.
75
76memory-region (optional) - phandle, specifier pairs to children of /reserved-memory
77
78Example
79-------
80This example defines 3 contiguous regions are defined for Linux kernel:
81one default of all device drivers (named linux,cma@72000000 and 64MiB in size),
82one dedicated to the framebuffer device (named framebuffer@78000000, 8MiB), and
83one for multimedia processing (named multimedia-memory@77000000, 64MiB).
84
85/ {
86 #address-cells = <1>;
87 #size-cells = <1>;
88
89 memory {
90 reg = <0x40000000 0x40000000>;
91 };
92
93 reserved-memory {
94 #address-cells = <1>;
95 #size-cells = <1>;
96 ranges;
97
98 /* global autoconfigured region for contiguous allocations */
99 linux,cma {
100 compatible = "shared-dma-pool";
101 reusable;
102 size = <0x4000000>;
103 alignment = <0x2000>;
104 linux,cma-default;
105 };
106
107 display_reserved: framebuffer@78000000 {
108 reg = <0x78000000 0x800000>;
109 };
110
111 multimedia_reserved: multimedia@77000000 {
112 compatible = "acme,multimedia-memory";
113 reg = <0x77000000 0x4000000>;
114 };
115 };
116
117 /* ... */
118
119 fb0: video@12300000 {
120 memory-region = <&display_reserved>;
121 /* ... */
122 };
123
124 scaler: scaler@12500000 {
125 memory-region = <&multimedia_reserved>;
126 /* ... */
127 };
128
129 codec: codec@12600000 {
130 memory-region = <&multimedia_reserved>;
131 /* ... */
132 };
133};
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 40ce2df0e0e9..95465d57eb31 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -3,6 +3,7 @@ Device tree binding vendor prefix registry. Keep list in alphabetical order.
3This isn't an exhaustive list, but you should add new prefixes to it before 3This isn't an exhaustive list, but you should add new prefixes to it before
4using them to avoid name-space collisions. 4using them to avoid name-space collisions.
5 5
6abilis Abilis Systems
6active-semi Active-Semi International Inc 7active-semi Active-Semi International Inc
7ad Avionic Design GmbH 8ad Avionic Design GmbH
8adi Analog Devices, Inc. 9adi Analog Devices, Inc.
@@ -11,14 +12,17 @@ ak Asahi Kasei Corp.
11allwinner Allwinner Technology Co., Ltd. 12allwinner Allwinner Technology Co., Ltd.
12altr Altera Corp. 13altr Altera Corp.
13amcc Applied Micro Circuits Corporation (APM, formally AMCC) 14amcc Applied Micro Circuits Corporation (APM, formally AMCC)
15amd Advanced Micro Devices (AMD), Inc.
14amstaos AMS-Taos Inc. 16amstaos AMS-Taos Inc.
15apm Applied Micro Circuits Corporation (APM) 17apm Applied Micro Circuits Corporation (APM)
16arm ARM Ltd. 18arm ARM Ltd.
19armadeus ARMadeus Systems SARL
17atmel Atmel Corporation 20atmel Atmel Corporation
18auo AU Optronics Corporation 21auo AU Optronics Corporation
19avago Avago Technologies 22avago Avago Technologies
20bosch Bosch Sensortec GmbH 23bosch Bosch Sensortec GmbH
21brcm Broadcom Corporation 24brcm Broadcom Corporation
25calxeda Calxeda
22capella Capella Microsystems, Inc 26capella Capella Microsystems, Inc
23cavium Cavium, Inc. 27cavium Cavium, Inc.
24cdns Cadence Design Systems Inc. 28cdns Cadence Design Systems Inc.
@@ -26,8 +30,10 @@ chrp Common Hardware Reference Platform
26chunghwa Chunghwa Picture Tubes Ltd. 30chunghwa Chunghwa Picture Tubes Ltd.
27cirrus Cirrus Logic, Inc. 31cirrus Cirrus Logic, Inc.
28cortina Cortina Systems, Inc. 32cortina Cortina Systems, Inc.
33crystalfontz Crystalfontz America, Inc.
29dallas Maxim Integrated Products (formerly Dallas Semiconductor) 34dallas Maxim Integrated Products (formerly Dallas Semiconductor)
30davicom DAVICOM Semiconductor, Inc. 35davicom DAVICOM Semiconductor, Inc.
36dlink D-Link Systems, Inc.
31denx Denx Software Engineering 37denx Denx Software Engineering
32edt Emerging Display Technologies 38edt Emerging Display Technologies
33emmicro EM Microelectronic 39emmicro EM Microelectronic
@@ -37,7 +43,9 @@ est ESTeem Wireless Modems
37fsl Freescale Semiconductor 43fsl Freescale Semiconductor
38GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. 44GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
39gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. 45gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
46globalscale Globalscale Technologies, Inc.
40gmt Global Mixed-mode Technology, Inc. 47gmt Global Mixed-mode Technology, Inc.
48google Google, Inc.
41gumstix Gumstix, Inc. 49gumstix Gumstix, Inc.
42haoyu Haoyu Microelectronic Co. Ltd. 50haoyu Haoyu Microelectronic Co. Ltd.
43hisilicon Hisilicon Limited. 51hisilicon Hisilicon Limited.
@@ -46,9 +54,12 @@ hp Hewlett Packard
46ibm International Business Machines (IBM) 54ibm International Business Machines (IBM)
47idt Integrated Device Technologies, Inc. 55idt Integrated Device Technologies, Inc.
48img Imagination Technologies Ltd. 56img Imagination Technologies Ltd.
57intel Intel Corporation
49intercontrol Inter Control Group 58intercontrol Inter Control Group
50isl Intersil 59isl Intersil
51karo Ka-Ro electronics GmbH 60karo Ka-Ro electronics GmbH
61lacie LaCie
62lantiq Lantiq Semiconductor
52lg LG Corporation 63lg LG Corporation
53linux Linux-specific binding 64linux Linux-specific binding
54lsi LSI Corp. (LSI Logic) 65lsi LSI Corp. (LSI Logic)
@@ -56,12 +67,16 @@ marvell Marvell Technology Group Ltd.
56maxim Maxim Integrated Products 67maxim Maxim Integrated Products
57microchip Microchip Technology Inc. 68microchip Microchip Technology Inc.
58mosaixtech Mosaix Technologies, Inc. 69mosaixtech Mosaix Technologies, Inc.
70moxa Moxa
59national National Semiconductor 71national National Semiconductor
60neonode Neonode Inc. 72neonode Neonode Inc.
73netgear NETGEAR
61nintendo Nintendo 74nintendo Nintendo
75nokia Nokia
62nvidia NVIDIA 76nvidia NVIDIA
63nxp NXP Semiconductors 77nxp NXP Semiconductors
64onnn ON Semiconductor Corp. 78onnn ON Semiconductor Corp.
79opencores OpenCores.org
65panasonic Panasonic Corporation 80panasonic Panasonic Corporation
66phytec PHYTEC Messtechnik GmbH 81phytec PHYTEC Messtechnik GmbH
67picochip Picochip Ltd 82picochip Picochip Ltd
@@ -80,6 +95,7 @@ sil Silicon Image
80silabs Silicon Laboratories 95silabs Silicon Laboratories
81simtek 96simtek
82sirf SiRF Technology, Inc. 97sirf SiRF Technology, Inc.
98smsc Standard Microsystems Corporation
83snps Synopsys, Inc. 99snps Synopsys, Inc.
84spansion Spansion Inc. 100spansion Spansion Inc.
85st STMicroelectronics 101st STMicroelectronics
@@ -94,4 +110,5 @@ via VIA Technologies, Inc.
94winbond Winbond Electronics corp. 110winbond Winbond Electronics corp.
95wlf Wolfson Microelectronics 111wlf Wolfson Microelectronics
96wm Wondermedia Technologies, Inc. 112wm Wondermedia Technologies, Inc.
113xes Extreme Engineering Solutions (X-ES)
97xlnx Xilinx 114xlnx Xilinx