aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/stable/sysfs-devices-node96
-rw-r--r--Documentation/ABI/testing/ima_policy3
-rw-r--r--Documentation/cgroups/memory.txt66
-rw-r--r--Documentation/cgroups/resource_counter.txt7
-rw-r--r--Documentation/devicetree/bindings/arm/davinci/nand.txt8
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt27
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt81
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-ocores.txt2
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt20
-rw-r--r--Documentation/devicetree/bindings/mtd/denali-nand.txt23
-rw-r--r--Documentation/devicetree/bindings/mtd/flctl-nand.txt49
-rw-r--r--Documentation/devicetree/bindings/mtd/fsmc-nand.txt12
-rw-r--r--Documentation/devicetree/bindings/mtd/m25p80.txt29
-rw-r--r--Documentation/devicetree/bindings/mtd/mtd-physmap.txt3
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tiecap.txt23
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt23
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt31
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm.txt17
-rw-r--r--Documentation/devicetree/bindings/pwm/spear-pwm.txt18
-rw-r--r--Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt17
-rw-r--r--Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt17
-rw-r--r--Documentation/devicetree/bindings/pwm/vt8500-pwm.txt17
-rw-r--r--Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/spi_atmel.txt26
-rw-r--r--Documentation/x86/boot.txt3
-rw-r--r--Documentation/xtensa/atomctl.txt44
27 files changed, 642 insertions, 24 deletions
diff --git a/Documentation/ABI/stable/sysfs-devices-node b/Documentation/ABI/stable/sysfs-devices-node
index 49b82cad7003..ce259c13c36a 100644
--- a/Documentation/ABI/stable/sysfs-devices-node
+++ b/Documentation/ABI/stable/sysfs-devices-node
@@ -1,7 +1,101 @@
1What: /sys/devices/system/node/possible
2Date: October 2002
3Contact: Linux Memory Management list <linux-mm@kvack.org>
4Description:
5 Nodes that could be possibly become online at some point.
6
7What: /sys/devices/system/node/online
8Date: October 2002
9Contact: Linux Memory Management list <linux-mm@kvack.org>
10Description:
11 Nodes that are online.
12
13What: /sys/devices/system/node/has_normal_memory
14Date: October 2002
15Contact: Linux Memory Management list <linux-mm@kvack.org>
16Description:
17 Nodes that have regular memory.
18
19What: /sys/devices/system/node/has_cpu
20Date: October 2002
21Contact: Linux Memory Management list <linux-mm@kvack.org>
22Description:
23 Nodes that have one or more CPUs.
24
25What: /sys/devices/system/node/has_high_memory
26Date: October 2002
27Contact: Linux Memory Management list <linux-mm@kvack.org>
28Description:
29 Nodes that have regular or high memory.
30 Depends on CONFIG_HIGHMEM.
31
1What: /sys/devices/system/node/nodeX 32What: /sys/devices/system/node/nodeX
2Date: October 2002 33Date: October 2002
3Contact: Linux Memory Management list <linux-mm@kvack.org> 34Contact: Linux Memory Management list <linux-mm@kvack.org>
4Description: 35Description:
5 When CONFIG_NUMA is enabled, this is a directory containing 36 When CONFIG_NUMA is enabled, this is a directory containing
6 information on node X such as what CPUs are local to the 37 information on node X such as what CPUs are local to the
7 node. 38 node. Each file is detailed next.
39
40What: /sys/devices/system/node/nodeX/cpumap
41Date: October 2002
42Contact: Linux Memory Management list <linux-mm@kvack.org>
43Description:
44 The node's cpumap.
45
46What: /sys/devices/system/node/nodeX/cpulist
47Date: October 2002
48Contact: Linux Memory Management list <linux-mm@kvack.org>
49Description:
50 The CPUs associated to the node.
51
52What: /sys/devices/system/node/nodeX/meminfo
53Date: October 2002
54Contact: Linux Memory Management list <linux-mm@kvack.org>
55Description:
56 Provides information about the node's distribution and memory
57 utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.txt
58
59What: /sys/devices/system/node/nodeX/numastat
60Date: October 2002
61Contact: Linux Memory Management list <linux-mm@kvack.org>
62Description:
63 The node's hit/miss statistics, in units of pages.
64 See Documentation/numastat.txt
65
66What: /sys/devices/system/node/nodeX/distance
67Date: October 2002
68Contact: Linux Memory Management list <linux-mm@kvack.org>
69Description:
70 Distance between the node and all the other nodes
71 in the system.
72
73What: /sys/devices/system/node/nodeX/vmstat
74Date: October 2002
75Contact: Linux Memory Management list <linux-mm@kvack.org>
76Description:
77 The node's zoned virtual memory statistics.
78 This is a superset of numastat.
79
80What: /sys/devices/system/node/nodeX/compact
81Date: February 2010
82Contact: Mel Gorman <mel@csn.ul.ie>
83Description:
84 When this file is written to, all memory within that node
85 will be compacted. When it completes, memory will be freed
86 into blocks which have as many contiguous pages as possible
87
88What: /sys/devices/system/node/nodeX/scan_unevictable_pages
89Date: October 2008
90Contact: Lee Schermerhorn <lee.schermerhorn@hp.com>
91Description:
92 When set, it triggers scanning the node's unevictable lists
93 and move any pages that have become evictable onto the respective
94 zone's inactive list. See mm/vmscan.c
95
96What: /sys/devices/system/node/nodeX/hugepages/hugepages-<size>/
97Date: December 2009
98Contact: Lee Schermerhorn <lee.schermerhorn@hp.com>
99Description:
100 The node's huge page size control/query attributes.
101 See Documentation/vm/hugetlbpage.txt \ No newline at end of file
diff --git a/Documentation/ABI/testing/ima_policy b/Documentation/ABI/testing/ima_policy
index 986946613542..ec0a38ef3145 100644
--- a/Documentation/ABI/testing/ima_policy
+++ b/Documentation/ABI/testing/ima_policy
@@ -23,7 +23,7 @@ Description:
23 lsm: [[subj_user=] [subj_role=] [subj_type=] 23 lsm: [[subj_user=] [subj_role=] [subj_type=]
24 [obj_user=] [obj_role=] [obj_type=]] 24 [obj_user=] [obj_role=] [obj_type=]]
25 25
26 base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK] 26 base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK][MODULE_CHECK]
27 mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] 27 mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
28 fsmagic:= hex value 28 fsmagic:= hex value
29 uid:= decimal value 29 uid:= decimal value
@@ -53,6 +53,7 @@ Description:
53 measure func=BPRM_CHECK 53 measure func=BPRM_CHECK
54 measure func=FILE_MMAP mask=MAY_EXEC 54 measure func=FILE_MMAP mask=MAY_EXEC
55 measure func=FILE_CHECK mask=MAY_READ uid=0 55 measure func=FILE_CHECK mask=MAY_READ uid=0
56 measure func=MODULE_CHECK uid=0
56 appraise fowner=0 57 appraise fowner=0
57 58
58 The default policy measures all executables in bprm_check, 59 The default policy measures all executables in bprm_check,
diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
index a25cb3fafeba..8b8c28b9864c 100644
--- a/Documentation/cgroups/memory.txt
+++ b/Documentation/cgroups/memory.txt
@@ -71,6 +71,11 @@ Brief summary of control files.
71 memory.oom_control # set/show oom controls. 71 memory.oom_control # set/show oom controls.
72 memory.numa_stat # show the number of memory usage per numa node 72 memory.numa_stat # show the number of memory usage per numa node
73 73
74 memory.kmem.limit_in_bytes # set/show hard limit for kernel memory
75 memory.kmem.usage_in_bytes # show current kernel memory allocation
76 memory.kmem.failcnt # show the number of kernel memory usage hits limits
77 memory.kmem.max_usage_in_bytes # show max kernel memory usage recorded
78
74 memory.kmem.tcp.limit_in_bytes # set/show hard limit for tcp buf memory 79 memory.kmem.tcp.limit_in_bytes # set/show hard limit for tcp buf memory
75 memory.kmem.tcp.usage_in_bytes # show current tcp buf memory allocation 80 memory.kmem.tcp.usage_in_bytes # show current tcp buf memory allocation
76 memory.kmem.tcp.failcnt # show the number of tcp buf memory usage hits limits 81 memory.kmem.tcp.failcnt # show the number of tcp buf memory usage hits limits
@@ -268,20 +273,73 @@ the amount of kernel memory used by the system. Kernel memory is fundamentally
268different than user memory, since it can't be swapped out, which makes it 273different than user memory, since it can't be swapped out, which makes it
269possible to DoS the system by consuming too much of this precious resource. 274possible to DoS the system by consuming too much of this precious resource.
270 275
276Kernel memory won't be accounted at all until limit on a group is set. This
277allows for existing setups to continue working without disruption. The limit
278cannot be set if the cgroup have children, or if there are already tasks in the
279cgroup. Attempting to set the limit under those conditions will return -EBUSY.
280When use_hierarchy == 1 and a group is accounted, its children will
281automatically be accounted regardless of their limit value.
282
283After a group is first limited, it will be kept being accounted until it
284is removed. The memory limitation itself, can of course be removed by writing
285-1 to memory.kmem.limit_in_bytes. In this case, kmem will be accounted, but not
286limited.
287
271Kernel memory limits are not imposed for the root cgroup. Usage for the root 288Kernel memory limits are not imposed for the root cgroup. Usage for the root
272cgroup may or may not be accounted. 289cgroup may or may not be accounted. The memory used is accumulated into
290memory.kmem.usage_in_bytes, or in a separate counter when it makes sense.
291(currently only for tcp).
292The main "kmem" counter is fed into the main counter, so kmem charges will
293also be visible from the user counter.
273 294
274Currently no soft limit is implemented for kernel memory. It is future work 295Currently no soft limit is implemented for kernel memory. It is future work
275to trigger slab reclaim when those limits are reached. 296to trigger slab reclaim when those limits are reached.
276 297
2772.7.1 Current Kernel Memory resources accounted 2982.7.1 Current Kernel Memory resources accounted
278 299
300* stack pages: every process consumes some stack pages. By accounting into
301kernel memory, we prevent new processes from being created when the kernel
302memory usage is too high.
303
304* slab pages: pages allocated by the SLAB or SLUB allocator are tracked. A copy
305of each kmem_cache is created everytime the cache is touched by the first time
306from inside the memcg. The creation is done lazily, so some objects can still be
307skipped while the cache is being created. All objects in a slab page should
308belong to the same memcg. This only fails to hold when a task is migrated to a
309different memcg during the page allocation by the cache.
310
279* sockets memory pressure: some sockets protocols have memory pressure 311* sockets memory pressure: some sockets protocols have memory pressure
280thresholds. The Memory Controller allows them to be controlled individually 312thresholds. The Memory Controller allows them to be controlled individually
281per cgroup, instead of globally. 313per cgroup, instead of globally.
282 314
283* tcp memory pressure: sockets memory pressure for the tcp protocol. 315* tcp memory pressure: sockets memory pressure for the tcp protocol.
284 316
3172.7.3 Common use cases
318
319Because the "kmem" counter is fed to the main user counter, kernel memory can
320never be limited completely independently of user memory. Say "U" is the user
321limit, and "K" the kernel limit. There are three possible ways limits can be
322set:
323
324 U != 0, K = unlimited:
325 This is the standard memcg limitation mechanism already present before kmem
326 accounting. Kernel memory is completely ignored.
327
328 U != 0, K < U:
329 Kernel memory is a subset of the user memory. This setup is useful in
330 deployments where the total amount of memory per-cgroup is overcommited.
331 Overcommiting kernel memory limits is definitely not recommended, since the
332 box can still run out of non-reclaimable memory.
333 In this case, the admin could set up K so that the sum of all groups is
334 never greater than the total memory, and freely set U at the cost of his
335 QoS.
336
337 U != 0, K >= U:
338 Since kmem charges will also be fed to the user counter and reclaim will be
339 triggered for the cgroup for both kinds of memory. This setup gives the
340 admin a unified view of memory, and it is also useful for people who just
341 want to track kernel memory usage.
342
2853. User Interface 3433. User Interface
286 344
2870. Configuration 3450. Configuration
@@ -290,6 +348,7 @@ a. Enable CONFIG_CGROUPS
290b. Enable CONFIG_RESOURCE_COUNTERS 348b. Enable CONFIG_RESOURCE_COUNTERS
291c. Enable CONFIG_MEMCG 349c. Enable CONFIG_MEMCG
292d. Enable CONFIG_MEMCG_SWAP (to use swap extension) 350d. Enable CONFIG_MEMCG_SWAP (to use swap extension)
351d. Enable CONFIG_MEMCG_KMEM (to use kmem extension)
293 352
2941. Prepare the cgroups (see cgroups.txt, Why are cgroups needed?) 3531. Prepare the cgroups (see cgroups.txt, Why are cgroups needed?)
295# mount -t tmpfs none /sys/fs/cgroup 354# mount -t tmpfs none /sys/fs/cgroup
@@ -406,6 +465,11 @@ About use_hierarchy, see Section 6.
406 Because rmdir() moves all pages to parent, some out-of-use page caches can be 465 Because rmdir() moves all pages to parent, some out-of-use page caches can be
407 moved to the parent. If you want to avoid that, force_empty will be useful. 466 moved to the parent. If you want to avoid that, force_empty will be useful.
408 467
468 Also, note that when memory.kmem.limit_in_bytes is set the charges due to
469 kernel pages will still be seen. This is not considered a failure and the
470 write will still return success. In this case, it is expected that
471 memory.kmem.usage_in_bytes == memory.usage_in_bytes.
472
409 About use_hierarchy, see Section 6. 473 About use_hierarchy, see Section 6.
410 474
4115.2 stat file 4755.2 stat file
diff --git a/Documentation/cgroups/resource_counter.txt b/Documentation/cgroups/resource_counter.txt
index 0c4a344e78fa..c4d99ed0b418 100644
--- a/Documentation/cgroups/resource_counter.txt
+++ b/Documentation/cgroups/resource_counter.txt
@@ -83,16 +83,17 @@ to work with it.
83 res_counter->lock internally (it must be called with res_counter->lock 83 res_counter->lock internally (it must be called with res_counter->lock
84 held). The force parameter indicates whether we can bypass the limit. 84 held). The force parameter indicates whether we can bypass the limit.
85 85
86 e. void res_counter_uncharge[_locked] 86 e. u64 res_counter_uncharge[_locked]
87 (struct res_counter *rc, unsigned long val) 87 (struct res_counter *rc, unsigned long val)
88 88
89 When a resource is released (freed) it should be de-accounted 89 When a resource is released (freed) it should be de-accounted
90 from the resource counter it was accounted to. This is called 90 from the resource counter it was accounted to. This is called
91 "uncharging". 91 "uncharging". The return value of this function indicate the amount
92 of charges still present in the counter.
92 93
93 The _locked routines imply that the res_counter->lock is taken. 94 The _locked routines imply that the res_counter->lock is taken.
94 95
95 f. void res_counter_uncharge_until 96 f. u64 res_counter_uncharge_until
96 (struct res_counter *rc, struct res_counter *top, 97 (struct res_counter *rc, struct res_counter *top,
97 unsinged long val) 98 unsinged long val)
98 99
diff --git a/Documentation/devicetree/bindings/arm/davinci/nand.txt b/Documentation/devicetree/bindings/arm/davinci/nand.txt
index 49fc7ada929a..3545ea704b50 100644
--- a/Documentation/devicetree/bindings/arm/davinci/nand.txt
+++ b/Documentation/devicetree/bindings/arm/davinci/nand.txt
@@ -23,6 +23,9 @@ Recommended properties :
23- ti,davinci-nand-buswidth: buswidth 8 or 16 23- ti,davinci-nand-buswidth: buswidth 8 or 16
24- ti,davinci-nand-use-bbt: use flash based bad block table support. 24- ti,davinci-nand-use-bbt: use flash based bad block table support.
25 25
26nand device bindings may contain additional sub-nodes describing
27partitions of the address space. See partition.txt for more detail.
28
26Example(da850 EVM ): 29Example(da850 EVM ):
27nand_cs3@62000000 { 30nand_cs3@62000000 {
28 compatible = "ti,davinci-nand"; 31 compatible = "ti,davinci-nand";
@@ -35,4 +38,9 @@ nand_cs3@62000000 {
35 ti,davinci-ecc-mode = "hw"; 38 ti,davinci-ecc-mode = "hw";
36 ti,davinci-ecc-bits = <4>; 39 ti,davinci-ecc-bits = <4>;
37 ti,davinci-nand-use-bbt; 40 ti,davinci-nand-use-bbt;
41
42 partition@180000 {
43 label = "ubifs";
44 reg = <0x180000 0x7e80000>;
45 };
38}; 46};
diff --git a/Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt b/Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt
new file mode 100644
index 000000000000..8ce9cd2855b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt
@@ -0,0 +1,27 @@
1Device tree bindings for i2c-cbus-gpio driver
2
3Required properties:
4 - compatible = "i2c-cbus-gpio";
5 - gpios: clk, dat, sel
6 - #address-cells = <1>;
7 - #size-cells = <0>;
8
9Optional properties:
10 - child nodes conforming to i2c bus binding
11
12Example:
13
14i2c@0 {
15 compatible = "i2c-cbus-gpio";
16 gpios = <&gpio 66 0 /* clk */
17 &gpio 65 0 /* dat */
18 &gpio 64 0 /* sel */
19 >;
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 retu-mfd: retu@1 {
24 compatible = "retu-mfd";
25 reg = <0x1>;
26 };
27};
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt
new file mode 100644
index 000000000000..66709a825541
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt
@@ -0,0 +1,81 @@
1GPIO-based I2C Bus Mux
2
3This binding describes an I2C bus multiplexer that uses GPIOs to
4route the I2C signals.
5
6 +-----+ +-----+
7 | dev | | dev |
8 +------------+ +-----+ +-----+
9 | SoC | | |
10 | | /--------+--------+
11 | +------+ | +------+ child bus A, on GPIO value set to 0
12 | | I2C |-|--| Mux |
13 | +------+ | +--+---+ child bus B, on GPIO value set to 1
14 | | | \----------+--------+--------+
15 | +------+ | | | | |
16 | | GPIO |-|-----+ +-----+ +-----+ +-----+
17 | +------+ | | dev | | dev | | dev |
18 +------------+ +-----+ +-----+ +-----+
19
20Required properties:
21- compatible: i2c-mux-gpio
22- i2c-parent: The phandle of the I2C bus that this multiplexer's master-side
23 port is connected to.
24- mux-gpios: list of gpios used to control the muxer
25* Standard I2C mux properties. See mux.txt in this directory.
26* I2C child bus nodes. See mux.txt in this directory.
27
28Optional properties:
29- idle-state: value to set the muxer to when idle. When no value is
30 given, it defaults to the last value used.
31
32For each i2c child node, an I2C child bus will be created. They will
33be numbered based on their order in the device tree.
34
35Whenever an access is made to a device on a child bus, the value set
36in the revelant node's reg property will be output using the list of
37GPIOs, the first in the list holding the least-significant value.
38
39If an idle state is defined, using the idle-state (optional) property,
40whenever an access is not being made to a device on a child bus, the
41GPIOs will be set according to the idle value.
42
43If an idle state is not defined, the most recently used value will be
44left programmed into hardware whenever no access is being made to a
45device on a child bus.
46
47Example:
48 i2cmux {
49 compatible = "i2c-mux-gpio";
50 #address-cells = <1>;
51 #size-cells = <0>;
52 mux-gpios = <&gpio1 22 0 &gpio1 23 0>;
53 i2c-parent = <&i2c1>;
54
55 i2c@1 {
56 reg = <1>;
57 #address-cells = <1>;
58 #size-cells = <0>;
59
60 ssd1307: oled@3c {
61 compatible = "solomon,ssd1307fb-i2c";
62 reg = <0x3c>;
63 pwms = <&pwm 4 3000>;
64 reset-gpios = <&gpio2 7 1>;
65 reset-active-low;
66 };
67 };
68
69 i2c@3 {
70 reg = <3>;
71 #address-cells = <1>;
72 #size-cells = <0>;
73
74 pca9555: pca9555@20 {
75 compatible = "nxp,pca9555";
76 gpio-controller;
77 #gpio-cells = <2>;
78 reg = <0x20>;
79 };
80 };
81 };
diff --git a/Documentation/devicetree/bindings/i2c/i2c-ocores.txt b/Documentation/devicetree/bindings/i2c/i2c-ocores.txt
index c15781f4dc8c..1637c298a1b3 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-ocores.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-ocores.txt
@@ -1,7 +1,7 @@
1Device tree configuration for i2c-ocores 1Device tree configuration for i2c-ocores
2 2
3Required properties: 3Required properties:
4- compatible : "opencores,i2c-ocores" 4- compatible : "opencores,i2c-ocores" or "aeroflexgaisler,i2cmst"
5- reg : bus address start and address range size of device 5- reg : bus address start and address range size of device
6- interrupts : interrupt number 6- interrupts : interrupt number
7- clock-frequency : frequency of bus clock in Hz 7- clock-frequency : frequency of bus clock in Hz
diff --git a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
index b6cb5a12c672..e9611ace8792 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
@@ -13,11 +13,17 @@ Required properties:
13 - interrupts: interrupt number to the cpu. 13 - interrupts: interrupt number to the cpu.
14 - samsung,i2c-sda-delay: Delay (in ns) applied to data line (SDA) edges. 14 - samsung,i2c-sda-delay: Delay (in ns) applied to data line (SDA) edges.
15 15
16Required for all cases except "samsung,s3c2440-hdmiphy-i2c":
17 - Samsung GPIO variant (deprecated):
18 - gpios: The order of the gpios should be the following: <SDA, SCL>.
19 The gpio specifier depends on the gpio controller. Required in all
20 cases except for "samsung,s3c2440-hdmiphy-i2c" whose input/output
21 lines are permanently wired to the respective clienta
22 - Pinctrl variant (preferred, if available):
23 - pinctrl-0: Pin control group to be used for this controller.
24 - pinctrl-names: Should contain only one value - "default".
25
16Optional properties: 26Optional properties:
17 - gpios: The order of the gpios should be the following: <SDA, SCL>.
18 The gpio specifier depends on the gpio controller. Required in all
19 cases except for "samsung,s3c2440-hdmiphy-i2c" whose input/output
20 lines are permanently wired to the respective client
21 - samsung,i2c-slave-addr: Slave address in multi-master enviroment. If not 27 - samsung,i2c-slave-addr: Slave address in multi-master enviroment. If not
22 specified, default value is 0. 28 specified, default value is 0.
23 - samsung,i2c-max-bus-freq: Desired frequency in Hz of the bus. If not 29 - samsung,i2c-max-bus-freq: Desired frequency in Hz of the bus. If not
@@ -31,8 +37,14 @@ Example:
31 interrupts = <345>; 37 interrupts = <345>;
32 samsung,i2c-sda-delay = <100>; 38 samsung,i2c-sda-delay = <100>;
33 samsung,i2c-max-bus-freq = <100000>; 39 samsung,i2c-max-bus-freq = <100000>;
40 /* Samsung GPIO variant begins here */
34 gpios = <&gpd1 2 0 /* SDA */ 41 gpios = <&gpd1 2 0 /* SDA */
35 &gpd1 3 0 /* SCL */>; 42 &gpd1 3 0 /* SCL */>;
43 /* Samsung GPIO variant ends here */
44 /* Pinctrl variant begins here */
45 pinctrl-0 = <&i2c3_bus>;
46 pinctrl-names = "default";
47 /* Pinctrl variant ends here */
36 #address-cells = <1>; 48 #address-cells = <1>;
37 #size-cells = <0>; 49 #size-cells = <0>;
38 50
diff --git a/Documentation/devicetree/bindings/mtd/denali-nand.txt b/Documentation/devicetree/bindings/mtd/denali-nand.txt
new file mode 100644
index 000000000000..b04d03a1d499
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/denali-nand.txt
@@ -0,0 +1,23 @@
1* Denali NAND controller
2
3Required properties:
4 - compatible : should be "denali,denali-nand-dt"
5 - reg : should contain registers location and length for data and reg.
6 - reg-names: Should contain the reg names "nand_data" and "denali_reg"
7 - interrupts : The interrupt number.
8 - dm-mask : DMA bit mask
9
10The device tree may optionally contain sub-nodes describing partitions of the
11address space. See partition.txt for more detail.
12
13Examples:
14
15nand: nand@ff900000 {
16 #address-cells = <1>;
17 #size-cells = <1>;
18 compatible = "denali,denali-nand-dt";
19 reg = <0xff900000 0x100000>, <0xffb80000 0x10000>;
20 reg-names = "nand_data", "denali_reg";
21 interrupts = <0 144 4>;
22 dma-mask = <0xffffffff>;
23};
diff --git a/Documentation/devicetree/bindings/mtd/flctl-nand.txt b/Documentation/devicetree/bindings/mtd/flctl-nand.txt
new file mode 100644
index 000000000000..427f46dc60ad
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/flctl-nand.txt
@@ -0,0 +1,49 @@
1FLCTL NAND controller
2
3Required properties:
4- compatible : "renesas,shmobile-flctl-sh7372"
5- reg : Address range of the FLCTL
6- interrupts : flste IRQ number
7- nand-bus-width : bus width to NAND chip
8
9Optional properties:
10- dmas: DMA specifier(s)
11- dma-names: name for each DMA specifier. Valid names are
12 "data_tx", "data_rx", "ecc_tx", "ecc_rx"
13
14The DMA fields are not used yet in the driver but are listed here for
15completing the bindings.
16
17The device tree may optionally contain sub-nodes describing partitions of the
18address space. See partition.txt for more detail.
19
20Example:
21
22 flctl@e6a30000 {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 compatible = "renesas,shmobile-flctl-sh7372";
26 reg = <0xe6a30000 0x100>;
27 interrupts = <0x0d80>;
28
29 nand-bus-width = <16>;
30
31 dmas = <&dmac 1 /* data_tx */
32 &dmac 2;> /* data_rx */
33 dma-names = "data_tx", "data_rx";
34
35 system@0 {
36 label = "system";
37 reg = <0x0 0x8000000>;
38 };
39
40 userdata@8000000 {
41 label = "userdata";
42 reg = <0x8000000 0x10000000>;
43 };
44
45 cache@18000000 {
46 label = "cache";
47 reg = <0x18000000 0x8000000>;
48 };
49 };
diff --git a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt
index e2c663b354d2..e3ea32e7de3e 100644
--- a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt
@@ -3,9 +3,7 @@
3Required properties: 3Required properties:
4- compatible : "st,spear600-fsmc-nand" 4- compatible : "st,spear600-fsmc-nand"
5- reg : Address range of the mtd chip 5- reg : Address range of the mtd chip
6- reg-names: Should contain the reg names "fsmc_regs" and "nand_data" 6- reg-names: Should contain the reg names "fsmc_regs", "nand_data", "nand_addr" and "nand_cmd"
7- st,ale-off : Chip specific offset to ALE
8- st,cle-off : Chip specific offset to CLE
9 7
10Optional properties: 8Optional properties:
11- bank-width : Width (in bytes) of the device. If not present, the width 9- bank-width : Width (in bytes) of the device. If not present, the width
@@ -19,10 +17,10 @@ Example:
19 #address-cells = <1>; 17 #address-cells = <1>;
20 #size-cells = <1>; 18 #size-cells = <1>;
21 reg = <0xd1800000 0x1000 /* FSMC Register */ 19 reg = <0xd1800000 0x1000 /* FSMC Register */
22 0xd2000000 0x4000>; /* NAND Base */ 20 0xd2000000 0x0010 /* NAND Base DATA */
23 reg-names = "fsmc_regs", "nand_data"; 21 0xd2020000 0x0010 /* NAND Base ADDR */
24 st,ale-off = <0x20000>; 22 0xd2010000 0x0010>; /* NAND Base CMD */
25 st,cle-off = <0x10000>; 23 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
26 24
27 bank-width = <1>; 25 bank-width = <1>;
28 nand-skip-bbtscan; 26 nand-skip-bbtscan;
diff --git a/Documentation/devicetree/bindings/mtd/m25p80.txt b/Documentation/devicetree/bindings/mtd/m25p80.txt
new file mode 100644
index 000000000000..6d3d57609470
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/m25p80.txt
@@ -0,0 +1,29 @@
1* MTD SPI driver for ST M25Pxx (and similar) serial flash chips
2
3Required properties:
4- #address-cells, #size-cells : Must be present if the device has sub-nodes
5 representing partitions.
6- compatible : Should be the manufacturer and the name of the chip. Bear in mind
7 the DT binding is not Linux-only, but in case of Linux, see the
8 "m25p_ids" table in drivers/mtd/devices/m25p80.c for the list of
9 supported chips.
10- reg : Chip-Select number
11- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at
12
13Optional properties:
14- m25p,fast-read : Use the "fast read" opcode to read data from the chip instead
15 of the usual "read" opcode. This opcode is not supported by
16 all chips and support for it can not be detected at runtime.
17 Refer to your chips' datasheet to check if this is supported
18 by your chip.
19
20Example:
21
22 flash: m25p80@0 {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 compatible = "spansion,m25p80";
26 reg = <0>;
27 spi-max-frequency = <40000000>;
28 m25p,fast-read;
29 };
diff --git a/Documentation/devicetree/bindings/mtd/mtd-physmap.txt b/Documentation/devicetree/bindings/mtd/mtd-physmap.txt
index 94de19b8f16b..dab7847fc800 100644
--- a/Documentation/devicetree/bindings/mtd/mtd-physmap.txt
+++ b/Documentation/devicetree/bindings/mtd/mtd-physmap.txt
@@ -23,6 +23,9 @@ file systems on embedded devices.
23 unaligned accesses as implemented in the JFFS2 code via memcpy(). 23 unaligned accesses as implemented in the JFFS2 code via memcpy().
24 By defining "no-unaligned-direct-access", the flash will not be 24 By defining "no-unaligned-direct-access", the flash will not be
25 exposed directly to the MTD users (e.g. JFFS2) any more. 25 exposed directly to the MTD users (e.g. JFFS2) any more.
26 - linux,mtd-name: allow to specify the mtd name for retro capability with
27 physmap-flash drivers as boot loader pass the mtd partition via the old
28 device name physmap-flash.
26 29
27For JEDEC compatible devices, the following additional properties 30For JEDEC compatible devices, the following additional properties
28are defined: 31are defined:
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
new file mode 100644
index 000000000000..131e8c11d26f
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
@@ -0,0 +1,23 @@
1TI SOC ECAP based APWM controller
2
3Required properties:
4- compatible: Must be "ti,am33xx-ecap"
5- #pwm-cells: Should be 3. Number of cells being used to specify PWM property.
6 First cell specifies the per-chip index of the PWM to use, the second
7 cell is the period in nanoseconds and bit 0 in the third cell is used to
8 encode the polarity of PWM output. Set bit 0 of the third in PWM specifier
9 to 1 for inverse polarity & set to 0 for normal polarity.
10- reg: physical base address and size of the registers map.
11
12Optional properties:
13- ti,hwmods: Name of the hwmod associated to the ECAP:
14 "ecap<x>", <x> being the 0-based instance number from the HW spec
15
16Example:
17
18ecap0: ecap@0 {
19 compatible = "ti,am33xx-ecap";
20 #pwm-cells = <3>;
21 reg = <0x48300100 0x80>;
22 ti,hwmods = "ecap0";
23};
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
new file mode 100644
index 000000000000..4fc7079d822e
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
@@ -0,0 +1,23 @@
1TI SOC EHRPWM based PWM controller
2
3Required properties:
4- compatible : Must be "ti,am33xx-ehrpwm"
5- #pwm-cells: Should be 3. Number of cells being used to specify PWM property.
6 First cell specifies the per-chip index of the PWM to use, the second
7 cell is the period in nanoseconds and bit 0 in the third cell is used to
8 encode the polarity of PWM output. Set bit 0 of the third in PWM specifier
9 to 1 for inverse polarity & set to 0 for normal polarity.
10- reg: physical base address and size of the registers map.
11
12Optional properties:
13- ti,hwmods: Name of the hwmod associated to the EHRPWM:
14 "ehrpwm<x>", <x> being the 0-based instance number from the HW spec
15
16Example:
17
18ehrpwm0: ehrpwm@0 {
19 compatible = "ti,am33xx-ehrpwm";
20 #pwm-cells = <3>;
21 reg = <0x48300200 0x100>;
22 ti,hwmods = "ehrpwm0";
23};
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt b/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt
new file mode 100644
index 000000000000..f7eae77f8354
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt
@@ -0,0 +1,31 @@
1TI SOC based PWM Subsystem
2
3Required properties:
4- compatible: Must be "ti,am33xx-pwmss";
5- reg: physical base address and size of the registers map.
6- address-cells: Specify the number of u32 entries needed in child nodes.
7 Should set to 1.
8- size-cells: specify number of u32 entries needed to specify child nodes size
9 in reg property. Should set to 1.
10- ranges: describes the address mapping of a memory-mapped bus. Should set to
11 physical address map of child's base address, physical address within
12 parent's address space and length of the address map. For am33xx,
13 3 set of child register maps present, ECAP register space, EQEP
14 register space, EHRPWM register space.
15
16Also child nodes should also populated under PWMSS DT node.
17
18Example:
19pwmss0: pwmss@48300000 {
20 compatible = "ti,am33xx-pwmss";
21 reg = <0x48300000 0x10>;
22 ti,hwmods = "epwmss0";
23 #address-cells = <1>;
24 #size-cells = <1>;
25 status = "disabled";
26 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
27 0x48300180 0x48300180 0x80 /* EQEP */
28 0x48300200 0x48300200 0x80>; /* EHRPWM */
29
30 /* child nodes go here */
31};
diff --git a/Documentation/devicetree/bindings/pwm/pwm.txt b/Documentation/devicetree/bindings/pwm/pwm.txt
index 73ec962bfe8c..06e67247859a 100644
--- a/Documentation/devicetree/bindings/pwm/pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm.txt
@@ -37,10 +37,21 @@ device:
37 pwm-names = "backlight"; 37 pwm-names = "backlight";
38 }; 38 };
39 39
40Note that in the example above, specifying the "pwm-names" is redundant
41because the name "backlight" would be used as fallback anyway.
42
40pwm-specifier typically encodes the chip-relative PWM number and the PWM 43pwm-specifier typically encodes the chip-relative PWM number and the PWM
41period in nanoseconds. Note that in the example above, specifying the 44period in nanoseconds.
42"pwm-names" is redundant because the name "backlight" would be used as 45
43fallback anyway. 46Optionally, the pwm-specifier can encode a number of flags in a third cell:
47- bit 0: PWM signal polarity (0: normal polarity, 1: inverse polarity)
48
49Example with optional PWM specifier for inverse polarity
50
51 bl: backlight {
52 pwms = <&pwm 0 5000000 1>;
53 pwm-names = "backlight";
54 };
44 55
452) PWM controller nodes 562) PWM controller nodes
46----------------------- 57-----------------------
diff --git a/Documentation/devicetree/bindings/pwm/spear-pwm.txt b/Documentation/devicetree/bindings/pwm/spear-pwm.txt
new file mode 100644
index 000000000000..3ac779d83386
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/spear-pwm.txt
@@ -0,0 +1,18 @@
1== ST SPEAr SoC PWM controller ==
2
3Required properties:
4- compatible: should be one of:
5 - "st,spear320-pwm"
6 - "st,spear1340-pwm"
7- reg: physical base address and length of the controller's registers
8- #pwm-cells: number of cells used to specify PWM which is fixed to 2 on
9 SPEAr. The first cell specifies the per-chip index of the PWM to use and
10 the second cell is the period in nanoseconds.
11
12Example:
13
14 pwm: pwm@a8000000 {
15 compatible ="st,spear320-pwm";
16 reg = <0xa8000000 0x1000>;
17 #pwm-cells = <2>;
18 };
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt
new file mode 100644
index 000000000000..2943ee5fce00
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt
@@ -0,0 +1,17 @@
1Texas Instruments TWL series PWM drivers
2
3Supported PWMs:
4On TWL4030 series: PWM1 and PWM2
5On TWL6030 series: PWM0 and PWM1
6
7Required properties:
8- compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm"
9- #pwm-cells: should be 2. The first cell specifies the per-chip index
10 of the PWM to use and the second cell is the period in nanoseconds.
11
12Example:
13
14twl_pwm: pwm {
15 compatible = "ti,twl6030-pwm";
16 #pwm-cells = <2>;
17};
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt
new file mode 100644
index 000000000000..cb64f3acc10f
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt
@@ -0,0 +1,17 @@
1Texas Instruments TWL series PWM drivers connected to LED terminals
2
3Supported PWMs:
4On TWL4030 series: PWMA and PWMB (connected to LEDA and LEDB terminals)
5On TWL6030 series: LED PWM (mainly used as charging indicator LED)
6
7Required properties:
8- compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled"
9- #pwm-cells: should be 2. The first cell specifies the per-chip index
10 of the PWM to use and the second cell is the period in nanoseconds.
11
12Example:
13
14twl_pwmled: pwmled {
15 compatible = "ti,twl6030-pwmled";
16 #pwm-cells = <2>;
17};
diff --git a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt
new file mode 100644
index 000000000000..bcc63678a9a5
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt
@@ -0,0 +1,17 @@
1VIA/Wondermedia VT8500/WM8xxx series SoC PWM controller
2
3Required properties:
4- compatible: should be "via,vt8500-pwm"
5- reg: physical base address and length of the controller's registers
6- #pwm-cells: should be 2. The first cell specifies the per-chip index
7 of the PWM to use and the second cell is the period in nanoseconds.
8- clocks: phandle to the PWM source clock
9
10Example:
11
12pwm1: pwm@d8220000 {
13 #pwm-cells = <2>;
14 compatible = "via,vt8500-pwm";
15 reg = <0xd8220000 0x1000>;
16 clocks = <&clkpwm>;
17};
diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt
index 8cf24f6f0a99..7b53da5cb75b 100644
--- a/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt
+++ b/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt
@@ -13,7 +13,7 @@ Recommended properties:
13 13
14Example: 14Example:
15 15
16spi@7000d600 { 16spi@7000c380 {
17 compatible = "nvidia,tegra20-sflash"; 17 compatible = "nvidia,tegra20-sflash";
18 reg = <0x7000c380 0x80>; 18 reg = <0x7000c380 0x80>;
19 interrupts = <0 39 0x04>; 19 interrupts = <0 39 0x04>;
diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt
index f5b1ad1a1ec3..eefe15e3d95e 100644
--- a/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt
+++ b/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt
@@ -13,7 +13,7 @@ Recommended properties:
13 13
14Example: 14Example:
15 15
16slink@7000d600 { 16spi@7000d600 {
17 compatible = "nvidia,tegra20-slink"; 17 compatible = "nvidia,tegra20-slink";
18 reg = <0x7000d600 0x200>; 18 reg = <0x7000d600 0x200>;
19 interrupts = <0 82 0x04>; 19 interrupts = <0 82 0x04>;
diff --git a/Documentation/devicetree/bindings/spi/spi_atmel.txt b/Documentation/devicetree/bindings/spi/spi_atmel.txt
new file mode 100644
index 000000000000..07e04cdc0c9e
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi_atmel.txt
@@ -0,0 +1,26 @@
1Atmel SPI device
2
3Required properties:
4- compatible : should be "atmel,at91rm9200-spi".
5- reg: Address and length of the register set for the device
6- interrupts: Should contain spi interrupt
7- cs-gpios: chipselects
8
9Example:
10
11spi1: spi@fffcc000 {
12 compatible = "atmel,at91rm9200-spi";
13 reg = <0xfffcc000 0x4000>;
14 interrupts = <13 4 5>;
15 #address-cells = <1>;
16 #size-cells = <0>;
17 cs-gpios = <&pioB 3 0>;
18 status = "okay";
19
20 mmc-slot@0 {
21 compatible = "mmc-spi-slot";
22 reg = <0>;
23 gpios = <&pioC 4 0>; /* CD */
24 spi-max-frequency = <25000000>;
25 };
26};
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
index f15cb74c4f78..406d82d5d2bb 100644
--- a/Documentation/x86/boot.txt
+++ b/Documentation/x86/boot.txt
@@ -373,7 +373,7 @@ Protocol: 2.00+
373 1 Loadlin 373 1 Loadlin
374 2 bootsect-loader (0x20, all other values reserved) 374 2 bootsect-loader (0x20, all other values reserved)
375 3 Syslinux 375 3 Syslinux
376 4 Etherboot/gPXE 376 4 Etherboot/gPXE/iPXE
377 5 ELILO 377 5 ELILO
378 7 GRUB 378 7 GRUB
379 8 U-Boot 379 8 U-Boot
@@ -381,6 +381,7 @@ Protocol: 2.00+
381 A Gujin 381 A Gujin
382 B Qemu 382 B Qemu
383 C Arcturus Networks uCbootloader 383 C Arcturus Networks uCbootloader
384 D kexec-tools
384 E Extended (see ext_loader_type) 385 E Extended (see ext_loader_type)
385 F Special (0xFF = undefined) 386 F Special (0xFF = undefined)
386 10 Reserved 387 10 Reserved
diff --git a/Documentation/xtensa/atomctl.txt b/Documentation/xtensa/atomctl.txt
new file mode 100644
index 000000000000..10a8d1ff35ec
--- /dev/null
+++ b/Documentation/xtensa/atomctl.txt
@@ -0,0 +1,44 @@
1We Have Atomic Operation Control (ATOMCTL) Register.
2This register determines the effect of using a S32C1I instruction
3with various combinations of:
4
5 1. With and without an Coherent Cache Controller which
6 can do Atomic Transactions to the memory internally.
7
8 2. With and without An Intelligent Memory Controller which
9 can do Atomic Transactions itself.
10
11The Core comes up with a default value of for the three types of cache ops:
12
13 0x28: (WB: Internal, WT: Internal, BY:Exception)
14
15On the FPGA Cards we typically simulate an Intelligent Memory controller
16which can implement RCW transactions. For FPGA cards with an External
17Memory controller we let it to the atomic operations internally while
18doing a Cached (WB) transaction and use the Memory RCW for un-cached
19operations.
20
21For systems without an coherent cache controller, non-MX, we always
22use the memory controllers RCW, thought non-MX controlers likely
23support the Internal Operation.
24
25CUSTOMER-WARNING:
26 Virtually all customers buy their memory controllers from vendors that
27 don't support atomic RCW memory transactions and will likely want to
28 configure this register to not use RCW.
29
30Developers might find using RCW in Bypass mode convenient when testing
31with the cache being bypassed; for example studying cache alias problems.
32
33See Section 4.3.12.4 of ISA; Bits:
34
35 WB WT BY
36 5 4 | 3 2 | 1 0
37 2 Bit
38 Field
39 Values WB - Write Back WT - Write Thru BY - Bypass
40--------- --------------- ----------------- ----------------
41 0 Exception Exception Exception
42 1 RCW Transaction RCW Transaction RCW Transaction
43 2 Internal Operation Exception Reserved
44 3 Reserved Reserved Reserved