aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/devicetree')
-rw-r--r--Documentation/devicetree/bindings/arm/cci.txt172
-rw-r--r--Documentation/devicetree/bindings/arm/keystone/keystone.txt10
-rw-r--r--Documentation/devicetree/bindings/arm/l2cc.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/nspire.txt14
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/rtsm-dcscb.txt19
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/interrupt-combiner.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/spear/shirq.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/ste-nomadik.txt5
-rw-r--r--Documentation/devicetree/bindings/arm/ste-u300.txt46
-rw-r--r--Documentation/devicetree/bindings/ata/ahci-platform.txt5
-rw-r--r--Documentation/devicetree/bindings/ata/atmel-at91_cf.txt19
-rw-r--r--Documentation/devicetree/bindings/bus/imx-weim.txt49
-rw-r--r--Documentation/devicetree/bindings/bus/ti-gpmc.txt1
-rw-r--r--Documentation/devicetree/bindings/clock/altr_socfpga.txt7
-rw-r--r--Documentation/devicetree/bindings/clock/clk-exynos-audss.txt64
-rw-r--r--Documentation/devicetree/bindings/clock/exynos4-clock.txt3
-rw-r--r--Documentation/devicetree/bindings/clock/exynos5420-clock.txt201
-rw-r--r--Documentation/devicetree/bindings/clock/imx5-clock.txt13
-rw-r--r--Documentation/devicetree/bindings/clock/imx6q-clock.txt1
-rw-r--r--Documentation/devicetree/bindings/clock/imx6sl-clock.txt10
-rw-r--r--Documentation/devicetree/bindings/clock/nspire-clock.txt24
-rw-r--r--Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt252
-rw-r--r--Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt154
-rw-r--r--Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt211
-rw-r--r--Documentation/devicetree/bindings/clock/rockchip.txt74
-rw-r--r--Documentation/devicetree/bindings/clock/silabs,si5351.txt7
-rw-r--r--Documentation/devicetree/bindings/clock/st,nomadik.txt104
-rw-r--r--Documentation/devicetree/bindings/clock/ste-u300-syscon-clock.txt80
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi.txt117
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi/sun4i-a10-gates.txt93
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi/sun5i-a13-gates.txt58
-rw-r--r--Documentation/devicetree/bindings/clock/vf610-clock.txt26
-rw-r--r--Documentation/devicetree/bindings/clock/vt8500.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/zynq-7000.txt123
-rw-r--r--Documentation/devicetree/bindings/dma/ste-coh901318.txt32
-rw-r--r--Documentation/devicetree/bindings/dma/ste-dma40.txt66
-rw-r--r--Documentation/devicetree/bindings/dma/ti-edma.txt34
-rw-r--r--Documentation/devicetree/bindings/extcon/extcon-twl.txt15
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-clps711x.txt28
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-msm.txt26
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-samsung.txt43
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-stericsson-coh901.txt7
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-xilinx.txt48
-rw-r--r--Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt46
-rw-r--r--Documentation/devicetree/bindings/gpu/samsung-g2d.txt5
-rw-r--r--Documentation/devicetree/bindings/hwmon/g762.txt47
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-designware.txt15
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt6
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-st-ddci2c.txt15
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-vt8500.txt24
-rw-r--r--Documentation/devicetree/bindings/i2c/ina2xx.txt22
-rw-r--r--Documentation/devicetree/bindings/iio/dac/ad7303.txt23
-rw-r--r--Documentation/devicetree/bindings/iio/frequency/adf4350.txt86
-rw-r--r--Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt18
-rw-r--r--Documentation/devicetree/bindings/input/pxa27x-keypad.txt60
-rw-r--r--Documentation/devicetree/bindings/input/samsung-keypad.txt24
-rw-r--r--Documentation/devicetree/bindings/input/ti,nspire-keypad.txt60
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/abilis,tb10x-ictl.txt38
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt87
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/marvell,orion-intc.txt48
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt16
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/sunxi/sun4i-a10.txt89
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/sunxi/sun5i-a13.txt55
-rw-r--r--Documentation/devicetree/bindings/leds/leds-lp55xx.txt147
-rw-r--r--Documentation/devicetree/bindings/media/s5p-mfc.txt5
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt156
-rw-r--r--Documentation/devicetree/bindings/metag/meta.txt30
-rw-r--r--Documentation/devicetree/bindings/mfd/ab8500.txt2
-rw-r--r--Documentation/devicetree/bindings/mfd/arizona.txt62
-rw-r--r--Documentation/devicetree/bindings/mfd/max77693.txt55
-rw-r--r--Documentation/devicetree/bindings/mfd/palmas.txt49
-rw-r--r--Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt16
-rw-r--r--Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt2
-rw-r--r--Documentation/devicetree/bindings/mtd/gpmc-nand.txt8
-rw-r--r--Documentation/devicetree/bindings/pci/designware-pcie.txt73
-rw-r--r--Documentation/devicetree/bindings/pci/mvebu-pci.txt221
-rw-r--r--Documentation/devicetree/bindings/pci/pci.txt9
-rw-r--r--Documentation/devicetree/bindings/pci/v3-v360epc-pci.txt15
-rw-r--r--Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/fsl,vf610-pinctrl.txt41
-rw-r--r--Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt127
-rw-r--r--Documentation/devicetree/bindings/pinctrl/img,tz1090-pinctrl.txt227
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt49
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt48
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt3
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt110
-rw-r--r--Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt153
-rw-r--r--Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt97
-rw-r--r--Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt53
-rw-r--r--Documentation/devicetree/bindings/pinctrl/ste,abx500.txt352
-rw-r--r--Documentation/devicetree/bindings/powerpc/4xx/emac.txt2
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt309
-rw-r--r--Documentation/devicetree/bindings/pps/pps-gpio.txt20
-rw-r--r--Documentation/devicetree/bindings/regulator/lp872x.txt160
-rw-r--r--Documentation/devicetree/bindings/regulator/max8973-regulator.txt21
-rw-r--r--Documentation/devicetree/bindings/regulator/palmas-pmic.txt72
-rw-r--r--Documentation/devicetree/bindings/regulator/regulator.txt1
-rw-r--r--Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt128
-rw-r--r--Documentation/devicetree/bindings/rtc/dw-apb.txt19
-rw-r--r--Documentation/devicetree/bindings/serio/olpc,ap-sp.txt13
-rw-r--r--Documentation/devicetree/bindings/sound/adi,adau1701.txt35
-rw-r--r--Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt46
-rw-r--r--Documentation/devicetree/bindings/sound/mxs-saif.txt17
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt71
-rw-r--r--Documentation/devicetree/bindings/sound/rt5640.txt30
-rw-r--r--Documentation/devicetree/bindings/sound/samsung-i2s.txt46
-rw-r--r--Documentation/devicetree/bindings/sound/sgtl5000.txt3
-rw-r--r--Documentation/devicetree/bindings/sound/spdif-receiver.txt10
-rw-r--r--Documentation/devicetree/bindings/sound/spdif-transmitter.txt10
-rw-r--r--Documentation/devicetree/bindings/sound/ssm2518.txt20
-rw-r--r--Documentation/devicetree/bindings/sound/ti,tas5086.txt11
-rw-r--r--Documentation/devicetree/bindings/sound/wm8962.txt23
-rw-r--r--Documentation/devicetree/bindings/spi/brcm,bcm2835-spi.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/omap-spi.txt27
-rw-r--r--Documentation/devicetree/bindings/staging/imx-drm/ldb.txt99
-rw-r--r--Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt2
-rw-r--r--Documentation/devicetree/bindings/timer/stericsson-u300-apptimer.txt18
-rw-r--r--Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt3
-rw-r--r--Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt14
-rw-r--r--Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt16
-rw-r--r--Documentation/devicetree/bindings/usb/am33xx-usb.txt2
-rw-r--r--Documentation/devicetree/bindings/usb/atmel-usb.txt82
-rw-r--r--Documentation/devicetree/bindings/usb/ci13xxx-imx.txt6
-rw-r--r--Documentation/devicetree/bindings/usb/exynos-usb.txt34
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt27
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt41
-rw-r--r--Documentation/devicetree/bindings/usb/omap-usb.txt2
-rw-r--r--Documentation/devicetree/bindings/usb/usb3503.txt5
-rw-r--r--Documentation/devicetree/bindings/usb/ux500-usb.txt50
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt3
-rw-r--r--Documentation/devicetree/bindings/video/exynos_dp.txt6
-rw-r--r--Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt19
-rw-r--r--Documentation/devicetree/usage-model.txt11
134 files changed, 5717 insertions, 992 deletions
diff --git a/Documentation/devicetree/bindings/arm/cci.txt b/Documentation/devicetree/bindings/arm/cci.txt
new file mode 100644
index 000000000000..92d36e2aa877
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/cci.txt
@@ -0,0 +1,172 @@
1=======================================================
2ARM CCI cache coherent interconnect binding description
3=======================================================
4
5ARM multi-cluster systems maintain intra-cluster coherency through a
6cache coherent interconnect (CCI) that is capable of monitoring bus
7transactions and manage coherency, TLB invalidations and memory barriers.
8
9It allows snooping and distributed virtual memory message broadcast across
10clusters, through memory mapped interface, with a global control register
11space and multiple sets of interface control registers, one per slave
12interface.
13
14Bindings for the CCI node follow the ePAPR standard, available from:
15
16www.power.org/documentation/epapr-version-1-1/
17
18with the addition of the bindings described in this document which are
19specific to ARM.
20
21* CCI interconnect node
22
23 Description: Describes a CCI cache coherent Interconnect component
24
25 Node name must be "cci".
26 Node's parent must be the root node /, and the address space visible
27 through the CCI interconnect is the same as the one seen from the
28 root node (ie from CPUs perspective as per DT standard).
29 Every CCI node has to define the following properties:
30
31 - compatible
32 Usage: required
33 Value type: <string>
34 Definition: must be set to
35 "arm,cci-400"
36
37 - reg
38 Usage: required
39 Value type: <prop-encoded-array>
40 Definition: A standard property. Specifies base physical
41 address of CCI control registers common to all
42 interfaces.
43
44 - ranges:
45 Usage: required
46 Value type: <prop-encoded-array>
47 Definition: A standard property. Follow rules in the ePAPR for
48 hierarchical bus addressing. CCI interfaces
49 addresses refer to the parent node addressing
50 scheme to declare their register bases.
51
52 CCI interconnect node can define the following child nodes:
53
54 - CCI control interface nodes
55
56 Node name must be "slave-if".
57 Parent node must be CCI interconnect node.
58
59 A CCI control interface node must contain the following
60 properties:
61
62 - compatible
63 Usage: required
64 Value type: <string>
65 Definition: must be set to
66 "arm,cci-400-ctrl-if"
67
68 - interface-type:
69 Usage: required
70 Value type: <string>
71 Definition: must be set to one of {"ace", "ace-lite"}
72 depending on the interface type the node
73 represents.
74
75 - reg:
76 Usage: required
77 Value type: <prop-encoded-array>
78 Definition: the base address and size of the
79 corresponding interface programming
80 registers.
81
82* CCI interconnect bus masters
83
84 Description: masters in the device tree connected to a CCI port
85 (inclusive of CPUs and their cpu nodes).
86
87 A CCI interconnect bus master node must contain the following
88 properties:
89
90 - cci-control-port:
91 Usage: required
92 Value type: <phandle>
93 Definition: a phandle containing the CCI control interface node
94 the master is connected to.
95
96Example:
97
98 cpus {
99 #size-cells = <0>;
100 #address-cells = <1>;
101
102 CPU0: cpu@0 {
103 device_type = "cpu";
104 compatible = "arm,cortex-a15";
105 cci-control-port = <&cci_control1>;
106 reg = <0x0>;
107 };
108
109 CPU1: cpu@1 {
110 device_type = "cpu";
111 compatible = "arm,cortex-a15";
112 cci-control-port = <&cci_control1>;
113 reg = <0x1>;
114 };
115
116 CPU2: cpu@100 {
117 device_type = "cpu";
118 compatible = "arm,cortex-a7";
119 cci-control-port = <&cci_control2>;
120 reg = <0x100>;
121 };
122
123 CPU3: cpu@101 {
124 device_type = "cpu";
125 compatible = "arm,cortex-a7";
126 cci-control-port = <&cci_control2>;
127 reg = <0x101>;
128 };
129
130 };
131
132 dma0: dma@3000000 {
133 compatible = "arm,pl330", "arm,primecell";
134 cci-control-port = <&cci_control0>;
135 reg = <0x0 0x3000000 0x0 0x1000>;
136 interrupts = <10>;
137 #dma-cells = <1>;
138 #dma-channels = <8>;
139 #dma-requests = <32>;
140 };
141
142 cci@2c090000 {
143 compatible = "arm,cci-400";
144 #address-cells = <1>;
145 #size-cells = <1>;
146 reg = <0x0 0x2c090000 0 0x1000>;
147 ranges = <0x0 0x0 0x2c090000 0x6000>;
148
149 cci_control0: slave-if@1000 {
150 compatible = "arm,cci-400-ctrl-if";
151 interface-type = "ace-lite";
152 reg = <0x1000 0x1000>;
153 };
154
155 cci_control1: slave-if@4000 {
156 compatible = "arm,cci-400-ctrl-if";
157 interface-type = "ace";
158 reg = <0x4000 0x1000>;
159 };
160
161 cci_control2: slave-if@5000 {
162 compatible = "arm,cci-400-ctrl-if";
163 interface-type = "ace";
164 reg = <0x5000 0x1000>;
165 };
166 };
167
168This CCI node corresponds to a CCI component whose control registers sits
169at address 0x000000002c090000.
170CCI slave interface @0x000000002c091000 is connected to dma controller dma0.
171CCI slave interface @0x000000002c094000 is connected to CPUs {CPU0, CPU1};
172CCI slave interface @0x000000002c095000 is connected to CPUs {CPU2, CPU3};
diff --git a/Documentation/devicetree/bindings/arm/keystone/keystone.txt b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
new file mode 100644
index 000000000000..63c0e6ae5cf7
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
@@ -0,0 +1,10 @@
1TI Keystone Platforms Device Tree Bindings
2-----------------------------------------------
3
4Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the
5following properties.
6
7Required properties:
8 - compatible: All TI specific devices present in Keystone SOC should be in
9 the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550
10 type UART should use the specified compatible for those devices.
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt
index cbef09b5c8a7..69ddf9fad2dc 100644
--- a/Documentation/devicetree/bindings/arm/l2cc.txt
+++ b/Documentation/devicetree/bindings/arm/l2cc.txt
@@ -16,6 +16,9 @@ Required properties:
16 performs the same operation). 16 performs the same operation).
17 "marvell,"aurora-outer-cache: Marvell Controller designed to be 17 "marvell,"aurora-outer-cache: Marvell Controller designed to be
18 compatible with the ARM one with outer cache mode. 18 compatible with the ARM one with outer cache mode.
19 "bcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an
20 offset needs to be added to the address before passing down to the L2
21 cache controller
19- cache-unified : Specifies the cache is a unified cache. 22- cache-unified : Specifies the cache is a unified cache.
20- cache-level : Should be set to 2 for a level 2 cache. 23- cache-level : Should be set to 2 for a level 2 cache.
21- reg : Physical base address and size of cache controller's memory mapped 24- reg : Physical base address and size of cache controller's memory mapped
diff --git a/Documentation/devicetree/bindings/arm/nspire.txt b/Documentation/devicetree/bindings/arm/nspire.txt
new file mode 100644
index 000000000000..4d08518bd176
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/nspire.txt
@@ -0,0 +1,14 @@
1TI-NSPIRE calculators
2
3Required properties:
4- compatible: Compatible property value should contain "ti,nspire".
5 CX models should have "ti,nspire-cx"
6 Touchpad models should have "ti,nspire-tp"
7 Clickpad models should have "ti,nspire-clp"
8
9Example:
10
11/ {
12 model = "TI-NSPIRE CX";
13 compatible = "ti,nspire-cx";
14 ...
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index f8288ea1b530..6d498c758b45 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -56,3 +56,6 @@ Boards:
56 56
57- OMAP5 EVM : Evaluation Module 57- OMAP5 EVM : Evaluation Module
58 compatible = "ti,omap5-evm", "ti,omap5" 58 compatible = "ti,omap5-evm", "ti,omap5"
59
60- AM43x EPOS EVM
61 compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43"
diff --git a/Documentation/devicetree/bindings/arm/rtsm-dcscb.txt b/Documentation/devicetree/bindings/arm/rtsm-dcscb.txt
new file mode 100644
index 000000000000..3b8fbf3c00c5
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/rtsm-dcscb.txt
@@ -0,0 +1,19 @@
1ARM Dual Cluster System Configuration Block
2-------------------------------------------
3
4The Dual Cluster System Configuration Block (DCSCB) provides basic
5functionality for controlling clocks, resets and configuration pins in
6the Dual Cluster System implemented by the Real-Time System Model (RTSM).
7
8Required properties:
9
10- compatible : should be "arm,rtsm,dcscb"
11
12- reg : physical base address and the size of the registers window
13
14Example:
15
16 dcscb@60000000 {
17 compatible = "arm,rtsm,dcscb";
18 reg = <0x60000000 0x1000>;
19 };
diff --git a/Documentation/devicetree/bindings/arm/samsung/interrupt-combiner.txt b/Documentation/devicetree/bindings/arm/samsung/interrupt-combiner.txt
index f2f2171e530e..9e5f73412cd7 100644
--- a/Documentation/devicetree/bindings/arm/samsung/interrupt-combiner.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/interrupt-combiner.txt
@@ -5,7 +5,7 @@ can combine interrupt sources as a group and provide a single interrupt request
5for the group. The interrupt request from each group are connected to a parent 5for the group. The interrupt request from each group are connected to a parent
6interrupt controller, such as GIC in case of Exynos4210. 6interrupt controller, such as GIC in case of Exynos4210.
7 7
8The interrupt combiner controller consists of multiple combiners. Upto eight 8The interrupt combiner controller consists of multiple combiners. Up to eight
9interrupt sources can be connected to a combiner. The combiner outputs one 9interrupt sources can be connected to a combiner. The combiner outputs one
10combined interrupt for its eight interrupt sources. The combined interrupt 10combined interrupt for its eight interrupt sources. The combined interrupt
11is usually connected to a parent interrupt controller. 11is usually connected to a parent interrupt controller.
@@ -14,8 +14,8 @@ A single node in the device tree is used to describe the interrupt combiner
14controller module (which includes multiple combiners). A combiner in the 14controller module (which includes multiple combiners). A combiner in the
15interrupt controller module shares config/control registers with other 15interrupt controller module shares config/control registers with other
16combiners. For example, a 32-bit interrupt enable/disable config register 16combiners. For example, a 32-bit interrupt enable/disable config register
17can accommodate upto 4 interrupt combiners (with each combiner supporting 17can accommodate up to 4 interrupt combiners (with each combiner supporting
18upto 8 interrupt sources). 18up to 8 interrupt sources).
19 19
20Required properties: 20Required properties:
21- compatible: should be "samsung,exynos4210-combiner". 21- compatible: should be "samsung,exynos4210-combiner".
diff --git a/Documentation/devicetree/bindings/arm/spear/shirq.txt b/Documentation/devicetree/bindings/arm/spear/shirq.txt
index 13fbb8866bd6..715a013ed4bd 100644
--- a/Documentation/devicetree/bindings/arm/spear/shirq.txt
+++ b/Documentation/devicetree/bindings/arm/spear/shirq.txt
@@ -14,7 +14,7 @@ A single node in the device tree is used to describe the shared
14interrupt multiplexor (one node for all groups). A group in the 14interrupt multiplexor (one node for all groups). A group in the
15interrupt controller shares config/control registers with other groups. 15interrupt controller shares config/control registers with other groups.
16For example, a 32-bit interrupt enable/disable config register can 16For example, a 32-bit interrupt enable/disable config register can
17accommodate upto 4 interrupt groups. 17accommodate up to 4 interrupt groups.
18 18
19Required properties: 19Required properties:
20 - compatible: should be, either of 20 - compatible: should be, either of
diff --git a/Documentation/devicetree/bindings/arm/ste-nomadik.txt b/Documentation/devicetree/bindings/arm/ste-nomadik.txt
index 19bca04b81c9..6256ec31666d 100644
--- a/Documentation/devicetree/bindings/arm/ste-nomadik.txt
+++ b/Documentation/devicetree/bindings/arm/ste-nomadik.txt
@@ -3,6 +3,11 @@ ST-Ericsson Nomadik Device Tree Bindings
3For various board the "board" node may contain specific properties 3For various board the "board" node may contain specific properties
4that pertain to this particular board, such as board-specific GPIOs. 4that pertain to this particular board, such as board-specific GPIOs.
5 5
6Required root node property: src
7- Nomadik System and reset controller used for basic chip control, clock
8 and reset line control.
9- compatible: must be "stericsson,nomadik,src"
10
6Boards with the Nomadik SoC include: 11Boards with the Nomadik SoC include:
7 12
8S8815 "MiniKit" manufactured by Calao Systems: 13S8815 "MiniKit" manufactured by Calao Systems:
diff --git a/Documentation/devicetree/bindings/arm/ste-u300.txt b/Documentation/devicetree/bindings/arm/ste-u300.txt
new file mode 100644
index 000000000000..69b5ab0b5f4b
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/ste-u300.txt
@@ -0,0 +1,46 @@
1ST-Ericsson U300 Device Tree Bindings
2
3For various board the "board" node may contain specific properties
4that pertain to this particular board, such as board-specific GPIOs
5or board power regulator supplies.
6
7Required root node property:
8
9compatible="stericsson,u300";
10
11Required node: syscon
12This contains the system controller.
13- compatible: must be "stericsson,u300-syscon".
14- reg: the base address and size of the system controller.
15
16Boards with the U300 SoC include:
17
18S365 "Small Board U365":
19
20Required node: s365
21This contains the board-specific information.
22- compatible: must be "stericsson,s365".
23- vana15-supply: the regulator supplying the 1.5V to drive the
24 board.
25- syscon: a pointer to the syscon node so we can acccess the
26 syscon registers to set the board as self-powered.
27
28Example:
29
30/ {
31 model = "ST-Ericsson U300";
32 compatible = "stericsson,u300";
33 #address-cells = <1>;
34 #size-cells = <1>;
35
36 s365 {
37 compatible = "stericsson,s365";
38 vana15-supply = <&ab3100_ldo_d_reg>;
39 syscon = <&syscon>;
40 };
41
42 syscon: syscon@c0011000 {
43 compatible = "stericsson,u300-syscon";
44 reg = <0xc0011000 0x1000>;
45 };
46};
diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
index b519f9b699c3..3ec0c5c4f0e9 100644
--- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
@@ -12,6 +12,11 @@ Optional properties:
12- calxeda,port-phys: phandle-combophy and lane assignment, which maps each 12- calxeda,port-phys: phandle-combophy and lane assignment, which maps each
13 SATA port to a combophy and a lane within that 13 SATA port to a combophy and a lane within that
14 combophy 14 combophy
15- calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off,
16 which indicates that the driver supports SGPIO
17 indicator lights using the indicated GPIOs
18- calxeda,led-order : a u32 array that map port numbers to offsets within the
19 SGPIO bitstream.
15- dma-coherent : Present if dma operations are coherent 20- dma-coherent : Present if dma operations are coherent
16 21
17Example: 22Example:
diff --git a/Documentation/devicetree/bindings/ata/atmel-at91_cf.txt b/Documentation/devicetree/bindings/ata/atmel-at91_cf.txt
new file mode 100644
index 000000000000..c1d22b3ae134
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/atmel-at91_cf.txt
@@ -0,0 +1,19 @@
1Atmel AT91RM9200 CompactFlash
2
3Required properties:
4- compatible : "atmel,at91rm9200-cf".
5- reg : should specify localbus address and size used.
6- gpios : specifies the gpio pins to control the CF device. Detect
7 and reset gpio's are mandatory while irq and vcc gpio's are
8 optional and may be set to 0 if not present.
9
10Example:
11compact-flash@50000000 {
12 compatible = "atmel,at91rm9200-cf";
13 reg = <0x50000000 0x30000000>;
14 gpios = <&pioC 13 0 /* irq */
15 &pioC 15 0 /* detect */
16 0 /* vcc */
17 &pioC 5 0 /* reset */
18 >;
19};
diff --git a/Documentation/devicetree/bindings/bus/imx-weim.txt b/Documentation/devicetree/bindings/bus/imx-weim.txt
new file mode 100644
index 000000000000..cedc2a9c4785
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/imx-weim.txt
@@ -0,0 +1,49 @@
1Device tree bindings for i.MX Wireless External Interface Module (WEIM)
2
3The term "wireless" does not imply that the WEIM is literally an interface
4without wires. It simply means that this module was originally designed for
5wireless and mobile applications that use low-power technology.
6
7The actual devices are instantiated from the child nodes of a WEIM node.
8
9Required properties:
10
11 - compatible: Should be set to "fsl,imx6q-weim"
12 - reg: A resource specifier for the register space
13 (see the example below)
14 - clocks: the clock, see the example below.
15 - #address-cells: Must be set to 2 to allow memory address translation
16 - #size-cells: Must be set to 1 to allow CS address passing
17 - ranges: Must be set up to reflect the memory layout with four
18 integer values for each chip-select line in use:
19
20 <cs-number> 0 <physical address of mapping> <size>
21
22Timing property for child nodes. It is mandatory, not optional.
23
24 - fsl,weim-cs-timing: The timing array, contains 6 timing values for the
25 child node. We can get the CS index from the child
26 node's "reg" property. This property contains the values
27 for the registers EIM_CSnGCR1, EIM_CSnGCR2, EIM_CSnRCR1,
28 EIM_CSnRCR2, EIM_CSnWCR1, EIM_CSnWCR2 in this order.
29
30Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM:
31
32 weim: weim@021b8000 {
33 compatible = "fsl,imx6q-weim";
34 reg = <0x021b8000 0x4000>;
35 clocks = <&clks 196>;
36 #address-cells = <2>;
37 #size-cells = <1>;
38 ranges = <0 0 0x08000000 0x08000000>;
39
40 nor@0,0 {
41 compatible = "cfi-flash";
42 reg = <0 0 0x02000000>;
43 #address-cells = <1>;
44 #size-cells = <1>;
45 bank-width = <2>;
46 fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
47 0x0000c000 0x1404a38e 0x00000000>;
48 };
49 };
diff --git a/Documentation/devicetree/bindings/bus/ti-gpmc.txt b/Documentation/devicetree/bindings/bus/ti-gpmc.txt
index 4b87ea1194e3..704be9306c9f 100644
--- a/Documentation/devicetree/bindings/bus/ti-gpmc.txt
+++ b/Documentation/devicetree/bindings/bus/ti-gpmc.txt
@@ -95,7 +95,6 @@ GPMC chip-select settings properties for child nodes. All are optional.
95- gpmc,burst-wrap Enables wrap bursting 95- gpmc,burst-wrap Enables wrap bursting
96- gpmc,burst-read Enables read page/burst mode 96- gpmc,burst-read Enables read page/burst mode
97- gpmc,burst-write Enables write page/burst mode 97- gpmc,burst-write Enables write page/burst mode
98- gpmc,device-nand Device is NAND
99- gpmc,device-width Total width of device(s) connected to a GPMC 98- gpmc,device-width Total width of device(s) connected to a GPMC
100 chip-select in bytes. The GPMC supports 8-bit 99 chip-select in bytes. The GPMC supports 8-bit
101 and 16-bit devices and so this property must be 100 and 16-bit devices and so this property must be
diff --git a/Documentation/devicetree/bindings/clock/altr_socfpga.txt b/Documentation/devicetree/bindings/clock/altr_socfpga.txt
index bd0c8416a5c8..0045433eae1f 100644
--- a/Documentation/devicetree/bindings/clock/altr_socfpga.txt
+++ b/Documentation/devicetree/bindings/clock/altr_socfpga.txt
@@ -9,6 +9,9 @@ Required properties:
9 "altr,socfpga-pll-clock" - for a PLL clock 9 "altr,socfpga-pll-clock" - for a PLL clock
10 "altr,socfpga-perip-clock" - The peripheral clock divided from the 10 "altr,socfpga-perip-clock" - The peripheral clock divided from the
11 PLL clock. 11 PLL clock.
12 "altr,socfpga-gate-clk" - Clocks that directly feed peripherals and
13 can get gated.
14
12- reg : shall be the control register offset from CLOCK_MANAGER's base for the clock. 15- reg : shall be the control register offset from CLOCK_MANAGER's base for the clock.
13- clocks : shall be the input parent clock phandle for the clock. This is 16- clocks : shall be the input parent clock phandle for the clock. This is
14 either an oscillator or a pll output. 17 either an oscillator or a pll output.
@@ -16,3 +19,7 @@ Required properties:
16 19
17Optional properties: 20Optional properties:
18- fixed-divider : If clocks have a fixed divider value, use this property. 21- fixed-divider : If clocks have a fixed divider value, use this property.
22- clk-gate : For "socfpga-gate-clk", clk-gate contains the gating register
23 and the bit index.
24- div-reg : For "socfpga-gate-clk", div-reg contains the divider register, bit shift,
25 and width.
diff --git a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt
new file mode 100644
index 000000000000..a1201802f90d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt
@@ -0,0 +1,64 @@
1* Samsung Audio Subsystem Clock Controller
2
3The Samsung Audio Subsystem clock controller generates and supplies clocks
4to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock
5binding described here is applicable to all SoC's in Exynos family.
6
7Required Properties:
8
9- compatible: should be one of the following:
10 - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.
11 - "samsung,exynos5250-audss-clock" - controller compatible with all Exynos5 SoCs.
12
13- reg: physical base address and length of the controller's register set.
14
15- #clock-cells: should be 1.
16
17The following is the list of clocks generated by the controller. Each clock is
18assigned an identifier and client nodes use this identifier to specify the
19clock which they consume. Some of the clocks are available only on a particular
20Exynos4 SoC and this is specified where applicable.
21
22Provided clocks:
23
24Clock ID SoC (if specific)
25-----------------------------------------------
26
27mout_audss 0
28mout_i2s 1
29dout_srp 2
30dout_aud_bus 3
31dout_i2s 4
32srp_clk 5
33i2s_bus 6
34sclk_i2s 7
35pcm_bus 8
36sclk_pcm 9
37
38Example 1: An example of a clock controller node is listed below.
39
40clock_audss: audss-clock-controller@3810000 {
41 compatible = "samsung,exynos5250-audss-clock";
42 reg = <0x03810000 0x0C>;
43 #clock-cells = <1>;
44};
45
46Example 2: I2S controller node that consumes the clock generated by the clock
47 controller. Refer to the standard clock bindings for information
48 about 'clocks' and 'clock-names' property.
49
50i2s0: i2s@03830000 {
51 compatible = "samsung,i2s-v5";
52 reg = <0x03830000 0x100>;
53 dmas = <&pdma0 10
54 &pdma0 9
55 &pdma0 8>;
56 dma-names = "tx", "rx", "tx-sec";
57 clocks = <&clock_audss EXYNOS_I2S_BUS>,
58 <&clock_audss EXYNOS_I2S_BUS>,
59 <&clock_audss EXYNOS_SCLK_I2S>,
60 <&clock_audss EXYNOS_MOUT_AUDSS>,
61 <&clock_audss EXYNOS_MOUT_I2S>;
62 clock-names = "iis", "i2s_opclk0", "i2s_opclk1",
63 "mout_audss", "mout_i2s";
64};
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
index ea5e26f16aec..14d5c2af26f4 100644
--- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
@@ -102,6 +102,7 @@ Exynos4 SoC and this is specified where applicable.
102 sclk_spi0_isp 174 Exynos4x12 102 sclk_spi0_isp 174 Exynos4x12
103 sclk_spi1_isp 175 Exynos4x12 103 sclk_spi1_isp 175 Exynos4x12
104 sclk_uart_isp 176 Exynos4x12 104 sclk_uart_isp 176 Exynos4x12
105 sclk_fimg2d 177
105 106
106 [Peripheral Clock Gates] 107 [Peripheral Clock Gates]
107 108
@@ -129,7 +130,7 @@ Exynos4 SoC and this is specified where applicable.
129 smmu_mfcl 274 130 smmu_mfcl 274
130 smmu_mfcr 275 131 smmu_mfcr 275
131 g3d 276 132 g3d 276
132 g2d 277 Exynos4210 133 g2d 277
133 rotator 278 Exynos4210 134 rotator 278 Exynos4210
134 mdma 279 Exynos4210 135 mdma 279 Exynos4210
135 smmu_g2d 280 Exynos4210 136 smmu_g2d 280 Exynos4210
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
new file mode 100644
index 000000000000..9bcc4b1bff51
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
@@ -0,0 +1,201 @@
1* Samsung Exynos5420 Clock Controller
2
3The Exynos5420 clock controller generates and supplies clock to various
4controllers within the Exynos5420 SoC.
5
6Required Properties:
7
8- comptible: should be one of the following.
9 - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC.
10
11- reg: physical base address of the controller and length of memory mapped
12 region.
13
14- #clock-cells: should be 1.
15
16The following is the list of clocks generated by the controller. Each clock is
17assigned an identifier and client nodes use this identifier to specify the
18clock which they consume.
19
20
21 [Core Clocks]
22
23 Clock ID
24 ----------------------------
25
26 fin_pll 1
27
28 [Clock Gate for Special Clocks]
29
30 Clock ID
31 ----------------------------
32 sclk_uart0 128
33 sclk_uart1 129
34 sclk_uart2 130
35 sclk_uart3 131
36 sclk_mmc0 132
37 sclk_mmc1 133
38 sclk_mmc2 134
39 sclk_spi0 135
40 sclk_spi1 136
41 sclk_spi2 137
42 sclk_i2s1 138
43 sclk_i2s2 139
44 sclk_pcm1 140
45 sclk_pcm2 141
46 sclk_spdif 142
47 sclk_hdmi 143
48 sclk_pixel 144
49 sclk_dp1 145
50 sclk_mipi1 146
51 sclk_fimd1 147
52 sclk_maudio0 148
53 sclk_maupcm0 149
54 sclk_usbd300 150
55 sclk_usbd301 151
56 sclk_usbphy300 152
57 sclk_usbphy301 153
58 sclk_unipro 154
59 sclk_pwm 155
60 sclk_gscl_wa 156
61 sclk_gscl_wb 157
62
63 [Peripheral Clock Gates]
64
65 Clock ID
66 ----------------------------
67
68 aclk66_peric 256
69 uart0 257
70 uart1 258
71 uart2 259
72 uart3 260
73 i2c0 261
74 i2c1 262
75 i2c2 263
76 i2c3 264
77 i2c4 265
78 i2c5 266
79 i2c6 267
80 i2c7 268
81 i2c_hdmi 269
82 tsadc 270
83 spi0 271
84 spi1 272
85 spi2 273
86 keyif 274
87 i2s1 275
88 i2s2 276
89 pcm1 277
90 pcm2 278
91 pwm 279
92 spdif 280
93 i2c8 281
94 i2c9 282
95 i2c10 283
96 aclk66_psgen 300
97 chipid 301
98 sysreg 302
99 tzpc0 303
100 tzpc1 304
101 tzpc2 305
102 tzpc3 306
103 tzpc4 307
104 tzpc5 308
105 tzpc6 309
106 tzpc7 310
107 tzpc8 311
108 tzpc9 312
109 hdmi_cec 313
110 seckey 314
111 mct 315
112 wdt 316
113 rtc 317
114 tmu 318
115 tmu_gpu 319
116 pclk66_gpio 330
117 aclk200_fsys2 350
118 mmc0 351
119 mmc1 352
120 mmc2 353
121 sromc 354
122 ufs 355
123 aclk200_fsys 360
124 tsi 361
125 pdma0 362
126 pdma1 363
127 rtic 364
128 usbh20 365
129 usbd300 366
130 usbd301 377
131 aclk400_mscl 380
132 mscl0 381
133 mscl1 382
134 mscl2 383
135 smmu_mscl0 384
136 smmu_mscl1 385
137 smmu_mscl2 386
138 aclk333 400
139 mfc 401
140 smmu_mfcl 402
141 smmu_mfcr 403
142 aclk200_disp1 410
143 dsim1 411
144 dp1 412
145 hdmi 413
146 aclk300_disp1 420
147 fimd1 421
148 smmu_fimd1 422
149 aclk166 430
150 mixer 431
151 aclk266 440
152 rotator 441
153 mdma1 442
154 smmu_rotator 443
155 smmu_mdma1 444
156 aclk300_jpeg 450
157 jpeg 451
158 jpeg2 452
159 smmu_jpeg 453
160 aclk300_gscl 460
161 smmu_gscl0 461
162 smmu_gscl1 462
163 gscl_wa 463
164 gscl_wb 464
165 gscl0 465
166 gscl1 466
167 clk_3aa 467
168 aclk266_g2d 470
169 sss 471
170 slim_sss 472
171 mdma0 473
172 aclk333_g2d 480
173 g2d 481
174 aclk333_432_gscl 490
175 smmu_3aa 491
176 smmu_fimcl0 492
177 smmu_fimcl1 493
178 smmu_fimcl3 494
179 fimc_lite3 495
180 aclk_g3d 500
181 g3d 501
182
183Example 1: An example of a clock controller node is listed below.
184
185 clock: clock-controller@0x10010000 {
186 compatible = "samsung,exynos5420-clock";
187 reg = <0x10010000 0x30000>;
188 #clock-cells = <1>;
189 };
190
191Example 2: UART controller node that consumes the clock generated by the clock
192 controller. Refer to the standard clock bindings for information
193 about 'clocks' and 'clock-names' property.
194
195 serial@13820000 {
196 compatible = "samsung,exynos4210-uart";
197 reg = <0x13820000 0x100>;
198 interrupts = <0 54 0>;
199 clocks = <&clock 259>, <&clock 130>;
200 clock-names = "uart", "clk_uart_baud0";
201 };
diff --git a/Documentation/devicetree/bindings/clock/imx5-clock.txt b/Documentation/devicetree/bindings/clock/imx5-clock.txt
index d71b4b2c077d..f46f5625d8ad 100644
--- a/Documentation/devicetree/bindings/clock/imx5-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx5-clock.txt
@@ -184,6 +184,19 @@ clocks and IDs.
184 cko2 170 184 cko2 170
185 srtc_gate 171 185 srtc_gate 171
186 pata_gate 172 186 pata_gate 172
187 sata_gate 173
188 spdif_xtal_sel 174
189 spdif0_sel 175
190 spdif1_sel 176
191 spdif0_pred 177
192 spdif0_podf 178
193 spdif1_pred 179
194 spdif1_podf 180
195 spdif0_com_sel 181
196 spdif1_com_sel 182
197 spdif0_gate 183
198 spdif1_gate 184
199 spdif_ipg_gate 185
187 200
188Examples (for mx53): 201Examples (for mx53):
189 202
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
index 6deb6fd1c7cd..a0e104f0527e 100644
--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
@@ -208,6 +208,7 @@ clocks and IDs.
208 pll4_post_div 193 208 pll4_post_div 193
209 pll5_post_div 194 209 pll5_post_div 194
210 pll5_video_div 195 210 pll5_video_div 195
211 eim_slow 196
211 212
212Examples: 213Examples:
213 214
diff --git a/Documentation/devicetree/bindings/clock/imx6sl-clock.txt b/Documentation/devicetree/bindings/clock/imx6sl-clock.txt
new file mode 100644
index 000000000000..15e40bdf147d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/imx6sl-clock.txt
@@ -0,0 +1,10 @@
1* Clock bindings for Freescale i.MX6 SoloLite
2
3Required properties:
4- compatible: Should be "fsl,imx6sl-ccm"
5- reg: Address and length of the register set
6- #clock-cells: Should be <1>
7
8The clock consumer should specify the desired clock by having the clock
9ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6sl-clock.h
10for the full list of i.MX6 SoloLite clock IDs.
diff --git a/Documentation/devicetree/bindings/clock/nspire-clock.txt b/Documentation/devicetree/bindings/clock/nspire-clock.txt
new file mode 100644
index 000000000000..7c3bc8bb5b9f
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/nspire-clock.txt
@@ -0,0 +1,24 @@
1TI-NSPIRE Clocks
2
3Required properties:
4- compatible: Valid compatible properties include:
5 "lsi,nspire-cx-ahb-divider" for the AHB divider in the CX model
6 "lsi,nspire-classic-ahb-divider" for the AHB divider in the older model
7 "lsi,nspire-cx-clock" for the base clock in the CX model
8 "lsi,nspire-classic-clock" for the base clock in the older model
9
10- reg: Physical base address of the controller and length of memory mapped
11 region.
12
13Optional:
14- clocks: For the "nspire-*-ahb-divider" compatible clocks, this is the parent
15 clock where it divides the rate from.
16
17Example:
18
19ahb_clk {
20 #clock-cells = <0>;
21 compatible = "lsi,nspire-cx-clock";
22 reg = <0x900B0000 0x4>;
23 clocks = <&base_clk>;
24};
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt
index d6cb083b90a2..0c80c2677104 100644
--- a/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt
+++ b/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt
@@ -12,253 +12,9 @@ Required properties :
12- clocks : Should contain phandle and clock specifiers for two clocks: 12- clocks : Should contain phandle and clock specifiers for two clocks:
13 the 32 KHz "32k_in", and the board-specific oscillator "osc". 13 the 32 KHz "32k_in", and the board-specific oscillator "osc".
14- #clock-cells : Should be 1. 14- #clock-cells : Should be 1.
15 In clock consumers, this cell represents the clock ID exposed by the CAR. 15 In clock consumers, this cell represents the clock ID exposed by the
16 16 CAR. The assignments may be found in header file
17 The first 160 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB 17 <dt-bindings/clock/tegra114-car.h>.
18 registers. These IDs often match those in the CAR's RST_DEVICES registers,
19 but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
20 this case, those clocks are assigned IDs above 160 in order to highlight
21 this issue. Implementations that interpret these clock IDs as bit values
22 within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
23 explicitly handle these special cases.
24
25 The balance of the clocks controlled by the CAR are assigned IDs of 160 and
26 above.
27
28 0 unassigned
29 1 unassigned
30 2 unassigned
31 3 unassigned
32 4 rtc
33 5 timer
34 6 uarta
35 7 unassigned (register bit affects uartb and vfir)
36 8 unassigned
37 9 sdmmc2
38 10 unassigned (register bit affects spdif_in and spdif_out)
39 11 i2s1
40 12 i2c1
41 13 ndflash
42 14 sdmmc1
43 15 sdmmc4
44 16 unassigned
45 17 pwm
46 18 i2s2
47 19 epp
48 20 unassigned (register bit affects vi and vi_sensor)
49 21 2d
50 22 usbd
51 23 isp
52 24 3d
53 25 unassigned
54 26 disp2
55 27 disp1
56 28 host1x
57 29 vcp
58 30 i2s0
59 31 unassigned
60
61 32 unassigned
62 33 unassigned
63 34 apbdma
64 35 unassigned
65 36 kbc
66 37 unassigned
67 38 unassigned
68 39 unassigned (register bit affects fuse and fuse_burn)
69 40 kfuse
70 41 sbc1
71 42 nor
72 43 unassigned
73 44 sbc2
74 45 unassigned
75 46 sbc3
76 47 i2c5
77 48 dsia
78 49 unassigned
79 50 mipi
80 51 hdmi
81 52 csi
82 53 unassigned
83 54 i2c2
84 55 uartc
85 56 mipi-cal
86 57 emc
87 58 usb2
88 59 usb3
89 60 msenc
90 61 vde
91 62 bsea
92 63 bsev
93
94 64 unassigned
95 65 uartd
96 66 unassigned
97 67 i2c3
98 68 sbc4
99 69 sdmmc3
100 70 unassigned
101 71 owr
102 72 afi
103 73 csite
104 74 unassigned
105 75 unassigned
106 76 la
107 77 trace
108 78 soc_therm
109 79 dtv
110 80 ndspeed
111 81 i2cslow
112 82 dsib
113 83 tsec
114 84 unassigned
115 85 unassigned
116 86 unassigned
117 87 unassigned
118 88 unassigned
119 89 xusb_host
120 90 unassigned
121 91 msenc
122 92 csus
123 93 unassigned
124 94 unassigned
125 95 unassigned (bit affects xusb_dev and xusb_dev_src)
126
127 96 unassigned
128 97 unassigned
129 98 unassigned
130 99 mselect
131 100 tsensor
132 101 i2s3
133 102 i2s4
134 103 i2c4
135 104 sbc5
136 105 sbc6
137 106 d_audio
138 107 apbif
139 108 dam0
140 109 dam1
141 110 dam2
142 111 hda2codec_2x
143 112 unassigned
144 113 audio0_2x
145 114 audio1_2x
146 115 audio2_2x
147 116 audio3_2x
148 117 audio4_2x
149 118 spdif_2x
150 119 actmon
151 120 extern1
152 121 extern2
153 122 extern3
154 123 unassigned
155 124 unassigned
156 125 hda
157 126 unassigned
158 127 se
159
160 128 hda2hdmi
161 129 unassigned
162 130 unassigned
163 131 unassigned
164 132 unassigned
165 133 unassigned
166 134 unassigned
167 135 unassigned
168 136 unassigned
169 137 unassigned
170 138 unassigned
171 139 unassigned
172 140 unassigned
173 141 unassigned
174 142 unassigned
175 143 unassigned (bit affects xusb_falcon_src, xusb_fs_src,
176 xusb_host_src and xusb_ss_src)
177 144 cilab
178 145 cilcd
179 146 cile
180 147 dsialp
181 148 dsiblp
182 149 unassigned
183 150 dds
184 151 unassigned
185 152 dp2
186 153 amx
187 154 adx
188 155 unassigned (bit affects dfll_ref and dfll_soc)
189 156 xusb_ss
190
191 192 uartb
192 193 vfir
193 194 spdif_in
194 195 spdif_out
195 196 vi
196 197 vi_sensor
197 198 fuse
198 199 fuse_burn
199 200 clk_32k
200 201 clk_m
201 202 clk_m_div2
202 203 clk_m_div4
203 204 pll_ref
204 205 pll_c
205 206 pll_c_out1
206 207 pll_c2
207 208 pll_c3
208 209 pll_m
209 210 pll_m_out1
210 211 pll_p
211 212 pll_p_out1
212 213 pll_p_out2
213 214 pll_p_out3
214 215 pll_p_out4
215 216 pll_a
216 217 pll_a_out0
217 218 pll_d
218 219 pll_d_out0
219 220 pll_d2
220 221 pll_d2_out0
221 222 pll_u
222 223 pll_u_480M
223 224 pll_u_60M
224 225 pll_u_48M
225 226 pll_u_12M
226 227 pll_x
227 228 pll_x_out0
228 229 pll_re_vco
229 230 pll_re_out
230 231 pll_e_out0
231 232 spdif_in_sync
232 233 i2s0_sync
233 234 i2s1_sync
234 235 i2s2_sync
235 236 i2s3_sync
236 237 i2s4_sync
237 238 vimclk_sync
238 239 audio0
239 240 audio1
240 241 audio2
241 242 audio3
242 243 audio4
243 244 spdif
244 245 clk_out_1
245 246 clk_out_2
246 247 clk_out_3
247 248 blink
248 252 xusb_host_src
249 253 xusb_falcon_src
250 254 xusb_fs_src
251 255 xusb_ss_src
252 256 xusb_dev_src
253 257 xusb_dev
254 258 xusb_hs_src
255 259 sclk
256 260 hclk
257 261 pclk
258 262 cclk_g
259 263 cclk_lp
260 264 dfll_ref
261 265 dfll_soc
262 18
263Example SoC include file: 19Example SoC include file:
264 20
@@ -270,7 +26,7 @@ Example SoC include file:
270 }; 26 };
271 27
272 usb@c5004000 { 28 usb@c5004000 {
273 clocks = <&tegra_car 58>; /* usb2 */ 29 clocks = <&tegra_car TEGRA114_CLK_USB2>;
274 }; 30 };
275}; 31};
276 32
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt
index e885680f6b45..fcfed5bf73fb 100644
--- a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt
+++ b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt
@@ -12,155 +12,9 @@ Required properties :
12- clocks : Should contain phandle and clock specifiers for two clocks: 12- clocks : Should contain phandle and clock specifiers for two clocks:
13 the 32 KHz "32k_in", and the board-specific oscillator "osc". 13 the 32 KHz "32k_in", and the board-specific oscillator "osc".
14- #clock-cells : Should be 1. 14- #clock-cells : Should be 1.
15 In clock consumers, this cell represents the clock ID exposed by the CAR. 15 In clock consumers, this cell represents the clock ID exposed by the
16 16 CAR. The assignments may be found in header file
17 The first 96 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB 17 <dt-bindings/clock/tegra20-car.h>.
18 registers. These IDs often match those in the CAR's RST_DEVICES registers,
19 but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
20 this case, those clocks are assigned IDs above 95 in order to highlight
21 this issue. Implementations that interpret these clock IDs as bit values
22 within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
23 explicitly handle these special cases.
24
25 The balance of the clocks controlled by the CAR are assigned IDs of 96 and
26 above.
27
28 0 cpu
29 1 unassigned
30 2 unassigned
31 3 ac97
32 4 rtc
33 5 tmr
34 6 uart1
35 7 unassigned (register bit affects uart2 and vfir)
36 8 gpio
37 9 sdmmc2
38 10 unassigned (register bit affects spdif_in and spdif_out)
39 11 i2s1
40 12 i2c1
41 13 ndflash
42 14 sdmmc1
43 15 sdmmc4
44 16 twc
45 17 pwm
46 18 i2s2
47 19 epp
48 20 unassigned (register bit affects vi and vi_sensor)
49 21 2d
50 22 usbd
51 23 isp
52 24 3d
53 25 ide
54 26 disp2
55 27 disp1
56 28 host1x
57 29 vcp
58 30 unassigned
59 31 cache2
60
61 32 mem
62 33 ahbdma
63 34 apbdma
64 35 unassigned
65 36 kbc
66 37 stat_mon
67 38 pmc
68 39 fuse
69 40 kfuse
70 41 sbc1
71 42 snor
72 43 spi1
73 44 sbc2
74 45 xio
75 46 sbc3
76 47 dvc
77 48 dsi
78 49 unassigned (register bit affects tvo and cve)
79 50 mipi
80 51 hdmi
81 52 csi
82 53 tvdac
83 54 i2c2
84 55 uart3
85 56 unassigned
86 57 emc
87 58 usb2
88 59 usb3
89 60 mpe
90 61 vde
91 62 bsea
92 63 bsev
93
94 64 speedo
95 65 uart4
96 66 uart5
97 67 i2c3
98 68 sbc4
99 69 sdmmc3
100 70 pcie
101 71 owr
102 72 afi
103 73 csite
104 74 unassigned
105 75 avpucq
106 76 la
107 77 unassigned
108 78 unassigned
109 79 unassigned
110 80 unassigned
111 81 unassigned
112 82 unassigned
113 83 unassigned
114 84 irama
115 85 iramb
116 86 iramc
117 87 iramd
118 88 cram2
119 89 audio_2x a/k/a audio_2x_sync_clk
120 90 clk_d
121 91 unassigned
122 92 sus
123 93 cdev2
124 94 cdev1
125 95 unassigned
126
127 96 uart2
128 97 vfir
129 98 spdif_in
130 99 spdif_out
131 100 vi
132 101 vi_sensor
133 102 tvo
134 103 cve
135 104 osc
136 105 clk_32k a/k/a clk_s
137 106 clk_m
138 107 sclk
139 108 cclk
140 109 hclk
141 110 pclk
142 111 blink
143 112 pll_a
144 113 pll_a_out0
145 114 pll_c
146 115 pll_c_out1
147 116 pll_d
148 117 pll_d_out0
149 118 pll_e
150 119 pll_m
151 120 pll_m_out1
152 121 pll_p
153 122 pll_p_out1
154 123 pll_p_out2
155 124 pll_p_out3
156 125 pll_p_out4
157 126 pll_s
158 127 pll_u
159 128 pll_x
160 129 cop a/k/a avp
161 130 audio a/k/a audio_sync_clk
162 131 pll_ref
163 132 twd
164 18
165Example SoC include file: 19Example SoC include file:
166 20
@@ -172,7 +26,7 @@ Example SoC include file:
172 }; 26 };
173 27
174 usb@c5004000 { 28 usb@c5004000 {
175 clocks = <&tegra_car 58>; /* usb2 */ 29 clocks = <&tegra_car TEGRA20_CLK_USB2>;
176 }; 30 };
177}; 31};
178 32
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt
index f3da3be5fcad..0f714081e986 100644
--- a/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt
+++ b/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt
@@ -12,212 +12,9 @@ Required properties :
12- clocks : Should contain phandle and clock specifiers for two clocks: 12- clocks : Should contain phandle and clock specifiers for two clocks:
13 the 32 KHz "32k_in", and the board-specific oscillator "osc". 13 the 32 KHz "32k_in", and the board-specific oscillator "osc".
14- #clock-cells : Should be 1. 14- #clock-cells : Should be 1.
15 In clock consumers, this cell represents the clock ID exposed by the CAR. 15 In clock consumers, this cell represents the clock ID exposed by the
16 16 CAR. The assignments may be found in header file
17 The first 130 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB 17 <dt-bindings/clock/tegra30-car.h>.
18 registers. These IDs often match those in the CAR's RST_DEVICES registers,
19 but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
20 this case, those clocks are assigned IDs above 160 in order to highlight
21 this issue. Implementations that interpret these clock IDs as bit values
22 within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
23 explicitly handle these special cases.
24
25 The balance of the clocks controlled by the CAR are assigned IDs of 160 and
26 above.
27
28 0 cpu
29 1 unassigned
30 2 unassigned
31 3 unassigned
32 4 rtc
33 5 timer
34 6 uarta
35 7 unassigned (register bit affects uartb and vfir)
36 8 gpio
37 9 sdmmc2
38 10 unassigned (register bit affects spdif_in and spdif_out)
39 11 i2s1
40 12 i2c1
41 13 ndflash
42 14 sdmmc1
43 15 sdmmc4
44 16 unassigned
45 17 pwm
46 18 i2s2
47 19 epp
48 20 unassigned (register bit affects vi and vi_sensor)
49 21 2d
50 22 usbd
51 23 isp
52 24 3d
53 25 unassigned
54 26 disp2
55 27 disp1
56 28 host1x
57 29 vcp
58 30 i2s0
59 31 cop_cache
60
61 32 mc
62 33 ahbdma
63 34 apbdma
64 35 unassigned
65 36 kbc
66 37 statmon
67 38 pmc
68 39 unassigned (register bit affects fuse and fuse_burn)
69 40 kfuse
70 41 sbc1
71 42 nor
72 43 unassigned
73 44 sbc2
74 45 unassigned
75 46 sbc3
76 47 i2c5
77 48 dsia
78 49 unassigned (register bit affects cve and tvo)
79 50 mipi
80 51 hdmi
81 52 csi
82 53 tvdac
83 54 i2c2
84 55 uartc
85 56 unassigned
86 57 emc
87 58 usb2
88 59 usb3
89 60 mpe
90 61 vde
91 62 bsea
92 63 bsev
93
94 64 speedo
95 65 uartd
96 66 uarte
97 67 i2c3
98 68 sbc4
99 69 sdmmc3
100 70 pcie
101 71 owr
102 72 afi
103 73 csite
104 74 pciex
105 75 avpucq
106 76 la
107 77 unassigned
108 78 unassigned
109 79 dtv
110 80 ndspeed
111 81 i2cslow
112 82 dsib
113 83 unassigned
114 84 irama
115 85 iramb
116 86 iramc
117 87 iramd
118 88 cram2
119 89 unassigned
120 90 audio_2x a/k/a audio_2x_sync_clk
121 91 unassigned
122 92 csus
123 93 cdev2
124 94 cdev1
125 95 unassigned
126
127 96 cpu_g
128 97 cpu_lp
129 98 3d2
130 99 mselect
131 100 tsensor
132 101 i2s3
133 102 i2s4
134 103 i2c4
135 104 sbc5
136 105 sbc6
137 106 d_audio
138 107 apbif
139 108 dam0
140 109 dam1
141 110 dam2
142 111 hda2codec_2x
143 112 atomics
144 113 audio0_2x
145 114 audio1_2x
146 115 audio2_2x
147 116 audio3_2x
148 117 audio4_2x
149 118 audio5_2x
150 119 actmon
151 120 extern1
152 121 extern2
153 122 extern3
154 123 sata_oob
155 124 sata
156 125 hda
157 127 se
158 128 hda2hdmi
159 129 sata_cold
160
161 160 uartb
162 161 vfir
163 162 spdif_in
164 163 spdif_out
165 164 vi
166 165 vi_sensor
167 166 fuse
168 167 fuse_burn
169 168 cve
170 169 tvo
171
172 170 clk_32k
173 171 clk_m
174 172 clk_m_div2
175 173 clk_m_div4
176 174 pll_ref
177 175 pll_c
178 176 pll_c_out1
179 177 pll_m
180 178 pll_m_out1
181 179 pll_p
182 180 pll_p_out1
183 181 pll_p_out2
184 182 pll_p_out3
185 183 pll_p_out4
186 184 pll_a
187 185 pll_a_out0
188 186 pll_d
189 187 pll_d_out0
190 188 pll_d2
191 189 pll_d2_out0
192 190 pll_u
193 191 pll_x
194 192 pll_x_out0
195 193 pll_e
196 194 spdif_in_sync
197 195 i2s0_sync
198 196 i2s1_sync
199 197 i2s2_sync
200 198 i2s3_sync
201 199 i2s4_sync
202 200 vimclk
203 201 audio0
204 202 audio1
205 203 audio2
206 204 audio3
207 205 audio4
208 206 audio5
209 207 clk_out_1 (extern1)
210 208 clk_out_2 (extern2)
211 209 clk_out_3 (extern3)
212 210 sclk
213 211 blink
214 212 cclk_g
215 213 cclk_lp
216 214 twd
217 215 cml0
218 216 cml1
219 217 hclk
220 218 pclk
221 18
222Example SoC include file: 19Example SoC include file:
223 20
@@ -229,7 +26,7 @@ Example SoC include file:
229 }; 26 };
230 27
231 usb@c5004000 { 28 usb@c5004000 {
232 clocks = <&tegra_car 58>; /* usb2 */ 29 clocks = <&tegra_car TEGRA30_CLK_USB2>;
233 }; 30 };
234}; 31};
235 32
diff --git a/Documentation/devicetree/bindings/clock/rockchip.txt b/Documentation/devicetree/bindings/clock/rockchip.txt
new file mode 100644
index 000000000000..a891c823ed44
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/rockchip.txt
@@ -0,0 +1,74 @@
1Device Tree Clock bindings for arch-rockchip
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7== Gate clocks ==
8
9The gate registers form a continuos block which makes the dt node
10structure a matter of taste, as either all gates can be put into
11one gate clock spanning all registers or they can be divided into
12the 10 individual gates containing 16 clocks each.
13The code supports both approaches.
14
15Required properties:
16- compatible : "rockchip,rk2928-gate-clk"
17- reg : shall be the control register address(es) for the clock.
18- #clock-cells : from common clock binding; shall be set to 1
19- clock-output-names : the corresponding gate names that the clock controls
20- clocks : should contain the parent clock for each individual gate,
21 therefore the number of clocks elements should match the number of
22 clock-output-names
23
24Example using multiple gate clocks:
25
26 clk_gates0: gate-clk@200000d0 {
27 compatible = "rockchip,rk2928-gate-clk";
28 reg = <0x200000d0 0x4>;
29 clocks = <&dummy>, <&dummy>,
30 <&dummy>, <&dummy>,
31 <&dummy>, <&dummy>,
32 <&dummy>, <&dummy>,
33 <&dummy>, <&dummy>,
34 <&dummy>, <&dummy>,
35 <&dummy>, <&dummy>,
36 <&dummy>, <&dummy>;
37
38 clock-output-names =
39 "gate_core_periph", "gate_cpu_gpll",
40 "gate_ddrphy", "gate_aclk_cpu",
41 "gate_hclk_cpu", "gate_pclk_cpu",
42 "gate_atclk_cpu", "gate_i2s0",
43 "gate_i2s0_frac", "gate_i2s1",
44 "gate_i2s1_frac", "gate_i2s2",
45 "gate_i2s2_frac", "gate_spdif",
46 "gate_spdif_frac", "gate_testclk";
47
48 #clock-cells = <1>;
49 };
50
51 clk_gates1: gate-clk@200000d4 {
52 compatible = "rockchip,rk2928-gate-clk";
53 reg = <0x200000d4 0x4>;
54 clocks = <&xin24m>, <&xin24m>,
55 <&xin24m>, <&dummy>,
56 <&dummy>, <&xin24m>,
57 <&xin24m>, <&dummy>,
58 <&xin24m>, <&dummy>,
59 <&xin24m>, <&dummy>,
60 <&xin24m>, <&dummy>,
61 <&xin24m>, <&dummy>;
62
63 clock-output-names =
64 "gate_timer0", "gate_timer1",
65 "gate_timer2", "gate_jtag",
66 "gate_aclk_lcdc1_src", "gate_otgphy0",
67 "gate_otgphy1", "gate_ddr_gpll",
68 "gate_uart0", "gate_frac_uart0",
69 "gate_uart1", "gate_frac_uart1",
70 "gate_uart2", "gate_frac_uart2",
71 "gate_uart3", "gate_frac_uart3";
72
73 #clock-cells = <1>;
74 };
diff --git a/Documentation/devicetree/bindings/clock/silabs,si5351.txt b/Documentation/devicetree/bindings/clock/silabs,si5351.txt
index cc374651662c..c40711e8e8f7 100644
--- a/Documentation/devicetree/bindings/clock/silabs,si5351.txt
+++ b/Documentation/devicetree/bindings/clock/silabs,si5351.txt
@@ -4,7 +4,7 @@ Reference
4[1] Si5351A/B/C Data Sheet 4[1] Si5351A/B/C Data Sheet
5 http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351.pdf 5 http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351.pdf
6 6
7The Si5351a/b/c are programmable i2c clock generators with upto 8 output 7The Si5351a/b/c are programmable i2c clock generators with up to 8 output
8clocks. Si5351a also has a reduced pin-count package (MSOP10) where only 8clocks. Si5351a also has a reduced pin-count package (MSOP10) where only
93 output clocks are accessible. The internal structure of the clock 93 output clocks are accessible. The internal structure of the clock
10generators can be found in [1]. 10generators can be found in [1].
@@ -44,6 +44,11 @@ Optional child node properties:
44- silabs,multisynth-source: source pll A(0) or B(1) of corresponding multisynth 44- silabs,multisynth-source: source pll A(0) or B(1) of corresponding multisynth
45 divider. 45 divider.
46- silabs,pll-master: boolean, multisynth can change pll frequency. 46- silabs,pll-master: boolean, multisynth can change pll frequency.
47- silabs,disable-state : clock output disable state, shall be
48 0 = clock output is driven LOW when disabled
49 1 = clock output is driven HIGH when disabled
50 2 = clock output is FLOATING (HIGH-Z) when disabled
51 3 = clock output is NEVER disabled
47 52
48==Example== 53==Example==
49 54
diff --git a/Documentation/devicetree/bindings/clock/st,nomadik.txt b/Documentation/devicetree/bindings/clock/st,nomadik.txt
new file mode 100644
index 000000000000..7fc09773de46
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/st,nomadik.txt
@@ -0,0 +1,104 @@
1ST Microelectronics Nomadik SRC System Reset and Control
2
3This binding uses the common clock binding:
4Documentation/devicetree/bindings/clock/clock-bindings.txt
5
6The Nomadik SRC controller is responsible of controlling chrystals,
7PLLs and clock gates.
8
9Required properties for the SRC node:
10- compatible: must be "stericsson,nomadik-src"
11- reg: must contain the SRC register base and size
12
13Optional properties for the SRC node:
14- disable-sxtalo: if present this will disable the SXTALO
15 i.e. the driver output for the slow 32kHz chrystal, if the
16 board has its own circuitry for providing this oscillator
17- disable-mxtal: if present this will disable the MXTALO,
18 i.e. the driver output for the main (~19.2 MHz) chrystal,
19 if the board has its own circuitry for providing this
20 osciallator
21
22
23PLL nodes: these nodes represent the two PLLs on the system,
24which should both have the main chrystal, represented as a
25fixed frequency clock, as parent.
26
27Required properties for the two PLL nodes:
28- compatible: must be "st,nomadik-pll-clock"
29- clock-cells: must be 0
30- clock-id: must be 1 or 2 for PLL1 and PLL2 respectively
31- clocks: this clock will have main chrystal as parent
32
33
34HCLK nodes: these represent the clock gates on individual
35lines from the HCLK clock tree and the gate for individual
36lines from the PCLK clock tree.
37
38Requires properties for the HCLK nodes:
39- compatible: must be "st,nomadik-hclk-clock"
40- clock-cells: must be 0
41- clock-id: must be the clock ID from 0 to 63 according to
42 this table:
43
44 0: HCLKDMA0
45 1: HCLKSMC
46 2: HCLKSDRAM
47 3: HCLKDMA1
48 4: HCLKCLCD
49 5: PCLKIRDA
50 6: PCLKSSP
51 7: PCLKUART0
52 8: PCLKSDI
53 9: PCLKI2C0
54 10: PCLKI2C1
55 11: PCLKUART1
56 12: PCLMSP0
57 13: HCLKUSB
58 14: HCLKDIF
59 15: HCLKSAA
60 16: HCLKSVA
61 17: PCLKHSI
62 18: PCLKXTI
63 19: PCLKUART2
64 20: PCLKMSP1
65 21: PCLKMSP2
66 22: PCLKOWM
67 23: HCLKHPI
68 24: PCLKSKE
69 25: PCLKHSEM
70 26: HCLK3D
71 27: HCLKHASH
72 28: HCLKCRYP
73 29: PCLKMSHC
74 30: HCLKUSBM
75 31: HCLKRNG
76 (32, 33, 34, 35 RESERVED)
77 36: CLDCLK
78 37: IRDACLK
79 38: SSPICLK
80 39: UART0CLK
81 40: SDICLK
82 41: I2C0CLK
83 42: I2C1CLK
84 43: UART1CLK
85 44: MSPCLK0
86 45: USBCLK
87 46: DIFCLK
88 47: IPI2CCLK
89 48: IPBMCCLK
90 49: HSICLKRX
91 50: HSICLKTX
92 51: UART2CLK
93 52: MSPCLK1
94 53: MSPCLK2
95 54: OWMCLK
96 (55 RESERVED)
97 56: SKECLK
98 (57 RESERVED)
99 58: 3DCLK
100 59: PCLKMSP3
101 60: MSPCLK3
102 61: MSHCCLK
103 62: USBMCLK
104 63: RNGCCLK
diff --git a/Documentation/devicetree/bindings/clock/ste-u300-syscon-clock.txt b/Documentation/devicetree/bindings/clock/ste-u300-syscon-clock.txt
new file mode 100644
index 000000000000..7cafcb98ead7
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/ste-u300-syscon-clock.txt
@@ -0,0 +1,80 @@
1Clock bindings for ST-Ericsson U300 System Controller Clocks
2
3Bindings for the gated system controller clocks:
4
5Required properties:
6- compatible: must be "stericsson,u300-syscon-clk"
7- #clock-cells: must be <0>
8- clock-type: specifies the type of clock:
9 0 = slow clock
10 1 = fast clock
11 2 = rest/remaining clock
12- clock-id: specifies the clock in the type range
13
14Optional properties:
15- clocks: parent clock(s)
16
17The available clocks per type are as follows:
18
19Type: ID: Clock:
20-------------------
210 0 Slow peripheral bridge clock
220 1 UART0 clock
230 4 GPIO clock
240 6 RTC clock
250 7 Application timer clock
260 8 Access timer clock
27
281 0 Fast peripheral bridge clock
291 1 I2C bus 0 clock
301 2 I2C bus 1 clock
311 5 MMC interface peripheral (silicon) clock
321 6 SPI clock
33
342 3 CPU clock
352 4 DMA controller clock
362 5 External Memory Interface (EMIF) clock
372 6 NAND flask interface clock
382 8 XGAM graphics engine clock
392 9 Shared External Memory Interface (SEMI) clock
402 10 AHB Subsystem Bridge clock
412 12 Interrupt controller clock
42
43Example:
44
45gpio_clk: gpio_clk@13M {
46 #clock-cells = <0>;
47 compatible = "stericsson,u300-syscon-clk";
48 clock-type = <0>; /* Slow */
49 clock-id = <4>;
50 clocks = <&slow_clk>;
51};
52
53gpio: gpio@c0016000 {
54 compatible = "stericsson,gpio-coh901";
55 (...)
56 clocks = <&gpio_clk>;
57};
58
59
60Bindings for the MMC/SD card clock:
61
62Required properties:
63- compatible: must be "stericsson,u300-syscon-mclk"
64- #clock-cells: must be <0>
65
66Optional properties:
67- clocks: parent clock(s)
68
69mmc_mclk: mmc_mclk {
70 #clock-cells = <0>;
71 compatible = "stericsson,u300-syscon-mclk";
72 clocks = <&mmc_pclk>;
73};
74
75mmcsd: mmcsd@c0001000 {
76 compatible = "arm,pl18x", "arm,primecell";
77 clocks = <&mmc_pclk>, <&mmc_mclk>;
78 clock-names = "apb_pclk", "mclk";
79 (...)
80};
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
index 729f52426fe1..d495521a79d2 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -12,22 +12,30 @@ Required properties:
12 "allwinner,sun4i-axi-clk" - for the AXI clock 12 "allwinner,sun4i-axi-clk" - for the AXI clock
13 "allwinner,sun4i-axi-gates-clk" - for the AXI gates 13 "allwinner,sun4i-axi-gates-clk" - for the AXI gates
14 "allwinner,sun4i-ahb-clk" - for the AHB clock 14 "allwinner,sun4i-ahb-clk" - for the AHB clock
15 "allwinner,sun4i-ahb-gates-clk" - for the AHB gates 15 "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10
16 "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13
16 "allwinner,sun4i-apb0-clk" - for the APB0 clock 17 "allwinner,sun4i-apb0-clk" - for the APB0 clock
17 "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates 18 "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10
19 "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13
18 "allwinner,sun4i-apb1-clk" - for the APB1 clock 20 "allwinner,sun4i-apb1-clk" - for the APB1 clock
19 "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing 21 "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing
20 "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates 22 "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10
23 "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13
21 24
22Required properties for all clocks: 25Required properties for all clocks:
23- reg : shall be the control register address for the clock. 26- reg : shall be the control register address for the clock.
24- clocks : shall be the input parent clock(s) phandle for the clock 27- clocks : shall be the input parent clock(s) phandle for the clock
25- #clock-cells : from common clock binding; shall be set to 0 except for 28- #clock-cells : from common clock binding; shall be set to 0 except for
26 "allwinner,sun4i-*-gates-clk" where it shall be set to 1 29 "allwinner,*-gates-clk" where it shall be set to 1
27 30
28Additionally, "allwinner,sun4i-*-gates-clk" clocks require: 31Additionally, "allwinner,*-gates-clk" clocks require:
29- clock-output-names : the corresponding gate names that the clock controls 32- clock-output-names : the corresponding gate names that the clock controls
30 33
34Clock consumers should specify the desired clocks they use with a
35"clocks" phandle cell. Consumers that are using a gated clock should
36provide an additional ID in their clock property. The values of this
37ID are documented in sunxi/<soc>-gates.txt.
38
31For example: 39For example:
32 40
33osc24M: osc24M@01c20050 { 41osc24M: osc24M@01c20050 {
@@ -50,102 +58,3 @@ cpu: cpu@01c20054 {
50 reg = <0x01c20054 0x4>; 58 reg = <0x01c20054 0x4>;
51 clocks = <&osc32k>, <&osc24M>, <&pll1>; 59 clocks = <&osc32k>, <&osc24M>, <&pll1>;
52}; 60};
53
54
55
56Gate clock outputs
57
58The "allwinner,sun4i-*-gates-clk" clocks provide several gatable outputs;
59their corresponding offsets as present on sun4i are listed below. Note that
60some of these gates are not present on sun5i.
61
62 * AXI gates ("allwinner,sun4i-axi-gates-clk")
63
64 DRAM 0
65
66 * AHB gates ("allwinner,sun4i-ahb-gates-clk")
67
68 USB0 0
69 EHCI0 1
70 OHCI0 2*
71 EHCI1 3
72 OHCI1 4*
73 SS 5
74 DMA 6
75 BIST 7
76 MMC0 8
77 MMC1 9
78 MMC2 10
79 MMC3 11
80 MS 12**
81 NAND 13
82 SDRAM 14
83
84 ACE 16
85 EMAC 17
86 TS 18
87
88 SPI0 20
89 SPI1 21
90 SPI2 22
91 SPI3 23
92 PATA 24
93 SATA 25**
94 GPS 26*
95
96 VE 32
97 TVD 33
98 TVE0 34
99 TVE1 35
100 LCD0 36
101 LCD1 37
102
103 CSI0 40
104 CSI1 41
105
106 HDMI 43
107 DE_BE0 44
108 DE_BE1 45
109 DE_FE0 46
110 DE_FE1 47
111
112 MP 50
113
114 MALI400 52
115
116 * APB0 gates ("allwinner,sun4i-apb0-gates-clk")
117
118 CODEC 0
119 SPDIF 1*
120 AC97 2
121 IIS 3
122
123 PIO 5
124 IR0 6
125 IR1 7
126
127 KEYPAD 10
128
129 * APB1 gates ("allwinner,sun4i-apb1-gates-clk")
130
131 I2C0 0
132 I2C1 1
133 I2C2 2
134
135 CAN 4
136 SCR 5
137 PS20 6
138 PS21 7
139
140 UART0 16
141 UART1 17
142 UART2 18
143 UART3 19
144 UART4 20
145 UART5 21
146 UART6 22
147 UART7 23
148
149Notation:
150 [*]: The datasheet didn't mention these, but they are present on AW code
151 [**]: The datasheet had this marked as "NC" but they are used on AW code
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun4i-a10-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun4i-a10-gates.txt
new file mode 100644
index 000000000000..6a03475bbfe2
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun4i-a10-gates.txt
@@ -0,0 +1,93 @@
1Gate clock outputs
2------------------
3
4 * AXI gates ("allwinner,sun4i-axi-gates-clk")
5
6 DRAM 0
7
8 * AHB gates ("allwinner,sun4i-ahb-gates-clk")
9
10 USB0 0
11 EHCI0 1
12 OHCI0 2*
13 EHCI1 3
14 OHCI1 4*
15 SS 5
16 DMA 6
17 BIST 7
18 MMC0 8
19 MMC1 9
20 MMC2 10
21 MMC3 11
22 MS 12**
23 NAND 13
24 SDRAM 14
25
26 ACE 16
27 EMAC 17
28 TS 18
29
30 SPI0 20
31 SPI1 21
32 SPI2 22
33 SPI3 23
34 PATA 24
35 SATA 25**
36 GPS 26*
37
38 VE 32
39 TVD 33
40 TVE0 34
41 TVE1 35
42 LCD0 36
43 LCD1 37
44
45 CSI0 40
46 CSI1 41
47
48 HDMI 43
49 DE_BE0 44
50 DE_BE1 45
51 DE_FE1 46
52 DE_FE1 47
53
54 MP 50
55
56 MALI400 52
57
58 * APB0 gates ("allwinner,sun4i-apb0-gates-clk")
59
60 CODEC 0
61 SPDIF 1*
62 AC97 2
63 IIS 3
64
65 PIO 5
66 IR0 6
67 IR1 7
68
69 KEYPAD 10
70
71 * APB1 gates ("allwinner,sun4i-apb1-gates-clk")
72
73 I2C0 0
74 I2C1 1
75 I2C2 2
76
77 CAN 4
78 SCR 5
79 PS20 6
80 PS21 7
81
82 UART0 16
83 UART1 17
84 UART2 18
85 UART3 19
86 UART4 20
87 UART5 21
88 UART6 22
89 UART7 23
90
91Notation:
92 [*]: The datasheet didn't mention these, but they are present on AW code
93 [**]: The datasheet had this marked as "NC" but they are used on AW code
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun5i-a13-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a13-gates.txt
new file mode 100644
index 000000000000..006b6dfc4703
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a13-gates.txt
@@ -0,0 +1,58 @@
1Gate clock outputs
2------------------
3
4 * AXI gates ("allwinner,sun4i-axi-gates-clk")
5
6 DRAM 0
7
8 * AHB gates ("allwinner,sun5i-a13-ahb-gates-clk")
9
10 USBOTG 0
11 EHCI 1
12 OHCI 2
13
14 SS 5
15 DMA 6
16 BIST 7
17 MMC0 8
18 MMC1 9
19 MMC2 10
20
21 NAND 13
22 SDRAM 14
23
24 SPI0 20
25 SPI1 21
26 SPI2 22
27
28 STIMER 28
29
30 VE 32
31
32 LCD 36
33
34 CSI 40
35
36 DE_BE 44
37
38 DE_FE 46
39
40 IEP 51
41 MALI400 52
42
43 * APB0 gates ("allwinner,sun5i-a13-apb0-gates-clk")
44
45 CODEC 0
46
47 PIO 5
48 IR 6
49
50 * APB1 gates ("allwinner,sun5i-a13-apb1-gates-clk")
51
52 I2C0 0
53 I2C1 1
54 I2C2 2
55
56 UART1 17
57
58 UART3 19
diff --git a/Documentation/devicetree/bindings/clock/vf610-clock.txt b/Documentation/devicetree/bindings/clock/vf610-clock.txt
new file mode 100644
index 000000000000..c80863d344ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/vf610-clock.txt
@@ -0,0 +1,26 @@
1* Clock bindings for Freescale Vybrid VF610 SOC
2
3Required properties:
4- compatible: Should be "fsl,vf610-ccm"
5- reg: Address and length of the register set
6- #clock-cells: Should be <1>
7
8The clock consumer should specify the desired clock by having the clock
9ID in its "clocks" phandle cell. See include/dt-bindings/clock/vf610-clock.h
10for the full list of VF610 clock IDs.
11
12Examples:
13
14clks: ccm@4006b000 {
15 compatible = "fsl,vf610-ccm";
16 reg = <0x4006b000 0x1000>;
17 #clock-cells = <1>;
18};
19
20uart1: serial@40028000 {
21 compatible = "fsl,vf610-uart";
22 reg = <0x40028000 0x1000>;
23 interrupts = <0 62 0x04>;
24 clocks = <&clks VF610_CLK_UART1>;
25 clock-names = "ipg";
26};
diff --git a/Documentation/devicetree/bindings/clock/vt8500.txt b/Documentation/devicetree/bindings/clock/vt8500.txt
index a880c70d0047..91d71cc0314a 100644
--- a/Documentation/devicetree/bindings/clock/vt8500.txt
+++ b/Documentation/devicetree/bindings/clock/vt8500.txt
@@ -8,6 +8,8 @@ Required properties:
8- compatible : shall be one of the following: 8- compatible : shall be one of the following:
9 "via,vt8500-pll-clock" - for a VT8500/WM8505 PLL clock 9 "via,vt8500-pll-clock" - for a VT8500/WM8505 PLL clock
10 "wm,wm8650-pll-clock" - for a WM8650 PLL clock 10 "wm,wm8650-pll-clock" - for a WM8650 PLL clock
11 "wm,wm8750-pll-clock" - for a WM8750 PLL clock
12 "wm,wm8850-pll-clock" - for a WM8850 PLL clock
11 "via,vt8500-device-clock" - for a VT/WM device clock 13 "via,vt8500-device-clock" - for a VT/WM device clock
12 14
13Required properties for PLL clocks: 15Required properties for PLL clocks:
diff --git a/Documentation/devicetree/bindings/clock/zynq-7000.txt b/Documentation/devicetree/bindings/clock/zynq-7000.txt
index 23ae1db1bc13..d99af878f5d7 100644
--- a/Documentation/devicetree/bindings/clock/zynq-7000.txt
+++ b/Documentation/devicetree/bindings/clock/zynq-7000.txt
@@ -6,50 +6,99 @@ The purpose of this document is to document their usage.
6See clock_bindings.txt for more information on the generic clock bindings. 6See clock_bindings.txt for more information on the generic clock bindings.
7See Chapter 25 of Zynq TRM for more information about Zynq clocks. 7See Chapter 25 of Zynq TRM for more information about Zynq clocks.
8 8
9== PLLs == 9== Clock Controller ==
10 10The clock controller is a logical abstraction of Zynq's clock tree. It reads
11Used to describe the ARM_PLL, DDR_PLL, and IO_PLL. 11required input clock frequencies from the devicetree and acts as clock provider
12for all clock consumers of PS clocks.
12 13
13Required properties: 14Required properties:
14- #clock-cells : shall be 0 (only one clock is output from this node) 15 - #clock-cells : Must be 1
15- compatible : "xlnx,zynq-pll" 16 - compatible : "xlnx,ps7-clkc"
16- reg : pair of u32 values, which are the address offsets within the SLCR 17 - ps-clk-frequency : Frequency of the oscillator providing ps_clk in HZ
17 of the relevant PLL_CTRL register and PLL_CFG register respectively 18 (usually 33 MHz oscillators are used for Zynq platforms)
18- clocks : phandle for parent clock. should be the phandle for ps_clk 19 - clock-output-names : List of strings used to name the clock outputs. Shall be
20 a list of the outputs given below.
19 21
20Optional properties: 22Optional properties:
21- clock-output-names : name of the output clock 23 - clocks : as described in the clock bindings
22 24 - clock-names : as described in the clock bindings
23Example:
24 armpll: armpll {
25 #clock-cells = <0>;
26 compatible = "xlnx,zynq-pll";
27 clocks = <&ps_clk>;
28 reg = <0x100 0x110>;
29 clock-output-names = "armpll";
30 };
31
32== Peripheral clocks ==
33 25
34Describes clock node for the SDIO, SMC, SPI, QSPI, and UART clocks. 26Clock inputs:
27The following strings are optional parameters to the 'clock-names' property in
28order to provide an optional (E)MIO clock source.
29 - swdt_ext_clk
30 - gem0_emio_clk
31 - gem1_emio_clk
32 - mio_clk_XX # with XX = 00..53
33...
35 34
36Required properties: 35Clock outputs:
37- #clock-cells : shall be 1 36 0: armpll
38- compatible : "xlnx,zynq-periph-clock" 37 1: ddrpll
39- reg : a single u32 value, describing the offset within the SLCR where 38 2: iopll
40 the CLK_CTRL register is found for this peripheral 39 3: cpu_6or4x
41- clocks : phandle for parent clocks. should hold phandles for 40 4: cpu_3or2x
42 the IO_PLL, ARM_PLL, and DDR_PLL in order 41 5: cpu_2x
43- clock-output-names : names of the output clock(s). For peripherals that have 42 6: cpu_1x
44 two output clocks (for example, the UART), two clocks 43 7: ddr2x
45 should be listed. 44 8: ddr3x
45 9: dci
46 10: lqspi
47 11: smc
48 12: pcap
49 13: gem0
50 14: gem1
51 15: fclk0
52 16: fclk1
53 17: fclk2
54 18: fclk3
55 19: can0
56 20: can1
57 21: sdio0
58 22: sdio1
59 23: uart0
60 24: uart1
61 25: spi0
62 26: spi1
63 27: dma
64 28: usb0_aper
65 29: usb1_aper
66 30: gem0_aper
67 31: gem1_aper
68 32: sdio0_aper
69 33: sdio1_aper
70 34: spi0_aper
71 35: spi1_aper
72 36: can0_aper
73 37: can1_aper
74 38: i2c0_aper
75 39: i2c1_aper
76 40: uart0_aper
77 41: uart1_aper
78 42: gpio_aper
79 43: lqspi_aper
80 44: smc_aper
81 45: swdt
82 46: dbg_trc
83 47: dbg_apb
46 84
47Example: 85Example:
48 uart_clk: uart_clk { 86 clkc: clkc {
49 #clock-cells = <1>; 87 #clock-cells = <1>;
50 compatible = "xlnx,zynq-periph-clock"; 88 compatible = "xlnx,ps7-clkc";
51 clocks = <&iopll &armpll &ddrpll>; 89 ps-clk-frequency = <33333333>;
52 reg = <0x154>; 90 clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
53 clock-output-names = "uart0_ref_clk", 91 "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
54 "uart1_ref_clk"; 92 "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
93 "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
94 "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
95 "dma", "usb0_aper", "usb1_aper", "gem0_aper",
96 "gem1_aper", "sdio0_aper", "sdio1_aper",
97 "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
98 "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
99 "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
100 "dbg_trc", "dbg_apb";
101 # optional props
102 clocks = <&clkc 16>, <&clk_foo>;
103 clock-names = "gem1_emio_clk", "can_mio_clk_23";
55 }; 104 };
diff --git a/Documentation/devicetree/bindings/dma/ste-coh901318.txt b/Documentation/devicetree/bindings/dma/ste-coh901318.txt
new file mode 100644
index 000000000000..091ad057e9cf
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/ste-coh901318.txt
@@ -0,0 +1,32 @@
1ST-Ericsson COH 901 318 DMA Controller
2
3This is a DMA controller which has begun as a fork of the
4ARM PL08x PrimeCell VHDL code.
5
6Required properties:
7- compatible: should be "stericsson,coh901318"
8- reg: register locations and length
9- interrupts: the single DMA IRQ
10- #dma-cells: must be set to <1>, as the channels on the
11 COH 901 318 are simple and identified by a single number
12- dma-channels: the number of DMA channels handled
13
14Example:
15
16dmac: dma-controller@c00020000 {
17 compatible = "stericsson,coh901318";
18 reg = <0xc0020000 0x1000>;
19 interrupt-parent = <&vica>;
20 interrupts = <2>;
21 #dma-cells = <1>;
22 dma-channels = <40>;
23};
24
25Consumers example:
26
27uart0: serial@c0013000 {
28 compatible = "...";
29 (...)
30 dmas = <&dmac 17 &dmac 18>;
31 dma-names = "tx", "rx";
32};
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt
new file mode 100644
index 000000000000..bea5b73a7390
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt
@@ -0,0 +1,66 @@
1* DMA40 DMA Controller
2
3Required properties:
4- compatible: "stericsson,dma40"
5- reg: Address range of the DMAC registers
6- reg-names: Names of the above areas to use during resource look-up
7- interrupt: Should contain the DMAC interrupt number
8- #dma-cells: must be <3>
9- memcpy-channels: Channels to be used for memcpy
10
11Optional properties:
12- dma-channels: Number of channels supported by hardware - if not present
13 the driver will attempt to obtain the information from H/W
14- disabled-channels: Channels which can not be used
15
16Example:
17
18 dma: dma-controller@801C0000 {
19 compatible = "stericsson,db8500-dma40", "stericsson,dma40";
20 reg = <0x801C0000 0x1000 0x40010000 0x800>;
21 reg-names = "base", "lcpa";
22 interrupt-parent = <&intc>;
23 interrupts = <0 25 0x4>;
24
25 #dma-cells = <2>;
26 memcpy-channels = <56 57 58 59 60>;
27 disabled-channels = <12>;
28 dma-channels = <8>;
29 };
30
31Clients
32Required properties:
33- dmas: Comma separated list of dma channel requests
34- dma-names: Names of the aforementioned requested channels
35
36Each dmas request consists of 4 cells:
37 1. A phandle pointing to the DMA controller
38 2. Device Type
39 3. The DMA request line number (only when 'use fixed channel' is set)
40 4. A 32bit mask specifying; mode, direction and endianess [NB: This list will grow]
41 0x00000001: Mode:
42 Logical channel when unset
43 Physical channel when set
44 0x00000002: Direction:
45 Memory to Device when unset
46 Device to Memory when set
47 0x00000004: Endianess:
48 Little endian when unset
49 Big endian when set
50 0x00000008: Use fixed channel:
51 Use automatic channel selection when unset
52 Use DMA request line number when set
53
54Example:
55
56 uart@80120000 {
57 compatible = "arm,pl011", "arm,primecell";
58 reg = <0x80120000 0x1000>;
59 interrupts = <0 11 0x4>;
60
61 dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
62 <&dma 13 0 0x0>; /* Logical - MemToDev */
63 dma-names = "rx", "rx";
64
65 status = "disabled";
66 };
diff --git a/Documentation/devicetree/bindings/dma/ti-edma.txt b/Documentation/devicetree/bindings/dma/ti-edma.txt
new file mode 100644
index 000000000000..9fbbdb783a72
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/ti-edma.txt
@@ -0,0 +1,34 @@
1TI EDMA
2
3Required properties:
4- compatible : "ti,edma3"
5- ti,edma-regions: Number of regions
6- ti,edma-slots: Number of slots
7- #dma-cells: Should be set to <1>
8 Clients should use a single channel number per DMA request.
9- dma-channels: Specify total DMA channels per CC
10- reg: Memory map for accessing module
11- interrupt-parent: Interrupt controller the interrupt is routed through
12- interrupts: Exactly 3 interrupts need to be specified in the order:
13 1. Transfer completion interrupt.
14 2. Memory protection interrupt.
15 3. Error interrupt.
16Optional properties:
17- ti,hwmods: Name of the hwmods associated to the EDMA
18- ti,edma-xbar-event-map: Crossbar event to channel map
19
20Example:
21
22edma: edma@49000000 {
23 reg = <0x49000000 0x10000>;
24 interrupt-parent = <&intc>;
25 interrupts = <12 13 14>;
26 compatible = "ti,edma3";
27 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
28 #dma-cells = <1>;
29 dma-channels = <64>;
30 ti,edma-regions = <4>;
31 ti,edma-slots = <256>;
32 ti,edma-xbar-event-map = <1 12
33 2 13>;
34};
diff --git a/Documentation/devicetree/bindings/extcon/extcon-twl.txt b/Documentation/devicetree/bindings/extcon/extcon-twl.txt
new file mode 100644
index 000000000000..58f531ab4df3
--- /dev/null
+++ b/Documentation/devicetree/bindings/extcon/extcon-twl.txt
@@ -0,0 +1,15 @@
1EXTCON FOR TWL CHIPS
2
3PALMAS USB COMPARATOR
4Required Properties:
5 - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb"
6 - vbus-supply : phandle to the regulator device tree node.
7
8Optional Properties:
9 - ti,wakeup : To enable the wakeup comparator in probe
10
11palmas-usb {
12 compatible = "ti,twl6035-usb", "ti,palmas-usb";
13 vbus-supply = <&smps10_reg>;
14 ti,wakeup;
15};
diff --git a/Documentation/devicetree/bindings/gpio/gpio-clps711x.txt b/Documentation/devicetree/bindings/gpio/gpio-clps711x.txt
new file mode 100644
index 000000000000..e0d0446a6b78
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-clps711x.txt
@@ -0,0 +1,28 @@
1Cirrus Logic CLPS711X GPIO controller
2
3Required properties:
4- compatible: Should be "cirrus,clps711x-gpio"
5- reg: Physical base GPIO controller registers location and length.
6 There should be two registers, first is DATA register, the second
7 is DIRECTION.
8- gpio-controller: Marks the device node as a gpio controller.
9- #gpio-cells: Should be two. The first cell is the pin number and
10 the second cell is used to specify the gpio polarity:
11 0 = active high
12 1 = active low
13
14Note: Each GPIO port should have an alias correctly numbered in "aliases"
15node.
16
17Example:
18
19aliases {
20 gpio0 = &porta;
21};
22
23porta: gpio@80000000 {
24 compatible = "cirrus,clps711x-gpio";
25 reg = <0x80000000 0x1>, <0x80000040 0x1>;
26 gpio-controller;
27 #gpio-cells = <2>;
28};
diff --git a/Documentation/devicetree/bindings/gpio/gpio-msm.txt b/Documentation/devicetree/bindings/gpio/gpio-msm.txt
new file mode 100644
index 000000000000..ac20e68a004e
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-msm.txt
@@ -0,0 +1,26 @@
1MSM GPIO controller bindings
2
3Required properties:
4- compatible:
5 - "qcom,msm-gpio" for MSM controllers
6- #gpio-cells : Should be two.
7 - first cell is the pin number
8 - second cell is used to specify optional parameters (unused)
9- gpio-controller : Marks the device node as a GPIO controller.
10- #interrupt-cells : Should be 2.
11- interrupt-controller: Mark the device node as an interrupt controller
12- interrupts : Specify the TLMM summary interrupt number
13- ngpio : Specify the number of MSM GPIOs
14
15Example:
16
17 msmgpio: gpio@fd510000 {
18 compatible = "qcom,msm-gpio";
19 gpio-controller;
20 #gpio-cells = <2>;
21 interrupt-controller;
22 #interrupt-cells = <2>;
23 reg = <0xfd510000 0x4000>;
24 interrupts = <0 208 0>;
25 ngpio = <150>;
26 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-samsung.txt b/Documentation/devicetree/bindings/gpio/gpio-samsung.txt
index f1e5dfecf55d..5375625e8cd2 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-samsung.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio-samsung.txt
@@ -39,46 +39,3 @@ Example:
39 #gpio-cells = <4>; 39 #gpio-cells = <4>;
40 gpio-controller; 40 gpio-controller;
41 }; 41 };
42
43
44Samsung S3C24XX GPIO Controller
45
46Required properties:
47- compatible: Compatible property value should be "samsung,s3c24xx-gpio".
48
49- reg: Physical base address of the controller and length of memory mapped
50 region.
51
52- #gpio-cells: Should be 3. The syntax of the gpio specifier used by client nodes
53 should be the following with values derived from the SoC user manual.
54 <[phandle of the gpio controller node]
55 [pin number within the gpio controller]
56 [mux function]
57 [flags and pull up/down]
58
59 Values for gpio specifier:
60 - Pin number: depending on the controller a number from 0 up to 15.
61 - Mux function: Depending on the SoC and the gpio bank the gpio can be set
62 as input, output or a special function
63 - Flags and Pull Up/Down: the values to use differ for the individual SoCs
64 example S3C2416/S3C2450:
65 0 - Pull Up/Down Disabled.
66 1 - Pull Down Enabled.
67 2 - Pull Up Enabled.
68 Bit 16 (0x00010000) - Input is active low.
69 Consult the user manual for the correct values of Mux and Pull Up/Down.
70
71- gpio-controller: Specifies that the node is a gpio controller.
72- #address-cells: should be 1.
73- #size-cells: should be 1.
74
75Example:
76
77 gpa: gpio-controller@56000000 {
78 #address-cells = <1>;
79 #size-cells = <1>;
80 compatible = "samsung,s3c24xx-gpio";
81 reg = <0x56000000 0x10>;
82 #gpio-cells = <3>;
83 gpio-controller;
84 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-stericsson-coh901.txt b/Documentation/devicetree/bindings/gpio/gpio-stericsson-coh901.txt
new file mode 100644
index 000000000000..fd665b44d767
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-stericsson-coh901.txt
@@ -0,0 +1,7 @@
1ST-Ericsson COH 901 571/3 GPIO controller
2
3Required properties:
4- compatible: Compatible property value should be "stericsson,gpio-coh901"
5- reg: Physical base address of the controller and length of memory mapped
6 region.
7- interrupts: the 0...n interrupts assigned to the different GPIO ports/banks.
diff --git a/Documentation/devicetree/bindings/gpio/gpio-xilinx.txt b/Documentation/devicetree/bindings/gpio/gpio-xilinx.txt
new file mode 100644
index 000000000000..63bf4becd5f0
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-xilinx.txt
@@ -0,0 +1,48 @@
1Xilinx plb/axi GPIO controller
2
3Dual channel GPIO controller with configurable number of pins
4(from 1 to 32 per channel). Every pin can be configured as
5input/output/tristate. Both channels share the same global IRQ but
6local interrupts can be enabled on channel basis.
7
8Required properties:
9- compatible : Should be "xlnx,xps-gpio-1.00.a"
10- reg : Address and length of the register set for the device
11- #gpio-cells : Should be two. The first cell is the pin number and the
12 second cell is used to specify optional parameters (currently unused).
13- gpio-controller : Marks the device node as a GPIO controller.
14
15Optional properties:
16- interrupts : Interrupt mapping for GPIO IRQ.
17- interrupt-parent : Phandle for the interrupt controller that
18 services interrupts for this device.
19- xlnx,all-inputs : if n-th bit is setup, GPIO-n is input
20- xlnx,dout-default : if n-th bit is 1, GPIO-n default value is 1
21- xlnx,gpio-width : gpio width
22- xlnx,tri-default : if n-th bit is 1, GPIO-n is in tristate mode
23- xlnx,is-dual : if 1, controller also uses the second channel
24- xlnx,all-inputs-2 : as above but for the second channel
25- xlnx,dout-default-2 : as above but the second channel
26- xlnx,gpio2-width : as above but for the second channel
27- xlnx,tri-default-2 : as above but for the second channel
28
29
30Example:
31gpio: gpio@40000000 {
32 #gpio-cells = <2>;
33 compatible = "xlnx,xps-gpio-1.00.a";
34 gpio-controller ;
35 interrupt-parent = <&microblaze_0_intc>;
36 interrupts = < 6 2 >;
37 reg = < 0x40000000 0x10000 >;
38 xlnx,all-inputs = <0x0>;
39 xlnx,all-inputs-2 = <0x0>;
40 xlnx,dout-default = <0x0>;
41 xlnx,dout-default-2 = <0x0>;
42 xlnx,gpio-width = <0x2>;
43 xlnx,gpio2-width = <0x2>;
44 xlnx,interrupt-present = <0x1>;
45 xlnx,is-dual = <0x1>;
46 xlnx,tri-default = <0xffffffff>;
47 xlnx,tri-default-2 = <0xffffffff>;
48} ;
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
new file mode 100644
index 000000000000..cb3dc7bcd8e6
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
@@ -0,0 +1,46 @@
1* Renesas R-Car GPIO Controller
2
3Required Properties:
4
5 - compatible: should be one of the following.
6 - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller.
7 - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.
8 - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.
9 - "renesas,gpio-rcar": for generic R-Car GPIO controller.
10
11 - reg: Base address and length of each memory resource used by the GPIO
12 controller hardware module.
13
14 - interrupt-parent: phandle of the parent interrupt controller.
15 - interrupts: Interrupt specifier for the controllers interrupt.
16
17 - gpio-controller: Marks the device node as a gpio controller.
18 - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
19 cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
20 GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
21 - gpio-ranges: Range of pins managed by the GPIO controller.
22
23Please refer to gpio.txt in this directory for details of gpio-ranges property
24and the common GPIO bindings used by client devices.
25
26Example: R8A7779 (R-Car H1) GPIO controller nodes
27
28 gpio0: gpio@ffc40000 {
29 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
30 reg = <0xffc40000 0x2c>;
31 interrupt-parent = <&gic>;
32 interrupts = <0 141 0x4>;
33 #gpio-cells = <2>;
34 gpio-controller;
35 gpio-ranges = <&pfc 0 0 32>;
36 };
37 ...
38 gpio6: gpio@ffc46000 {
39 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
40 reg = <0xffc46000 0x2c>;
41 interrupt-parent = <&gic>;
42 interrupts = <0 147 0x4>;
43 #gpio-cells = <2>;
44 gpio-controller;
45 gpio-ranges = <&pfc 0 192 9>;
46 };
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
index 2b14a940eb75..3f454ffc654a 100644
--- a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
+++ b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
@@ -10,11 +10,16 @@ Required properties:
10 mapped region. 10 mapped region.
11 11
12 - interrupts : G2D interrupt number to the CPU. 12 - interrupts : G2D interrupt number to the CPU.
13 - clocks : from common clock binding: handle to G2D clocks.
14 - clock-names : from common clock binding: must contain "sclk_fimg2d" and
15 "fimg2d", corresponding to entries in the clocks property.
13 16
14Example: 17Example:
15 g2d@12800000 { 18 g2d@12800000 {
16 compatible = "samsung,s5pv210-g2d"; 19 compatible = "samsung,s5pv210-g2d";
17 reg = <0x12800000 0x1000>; 20 reg = <0x12800000 0x1000>;
18 interrupts = <0 89 0>; 21 interrupts = <0 89 0>;
22 clocks = <&clock 177>, <&clock 277>;
23 clock-names = "sclk_fimg2d", "fimg2d";
19 status = "disabled"; 24 status = "disabled";
20 }; 25 };
diff --git a/Documentation/devicetree/bindings/hwmon/g762.txt b/Documentation/devicetree/bindings/hwmon/g762.txt
new file mode 100644
index 000000000000..25cc6d8ee575
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/g762.txt
@@ -0,0 +1,47 @@
1GMT G762/G763 PWM Fan controller
2
3Required node properties:
4
5 - "compatible": must be either "gmt,g762" or "gmt,g763"
6 - "reg": I2C bus address of the device
7 - "clocks": a fixed clock providing input clock frequency
8 on CLK pin of the chip.
9
10Optional properties:
11
12 - "fan_startv": fan startup voltage. Accepted values are 0, 1, 2 and 3.
13 The higher the more.
14
15 - "pwm_polarity": pwm polarity. Accepted values are 0 (positive duty)
16 and 1 (negative duty).
17
18 - "fan_gear_mode": fan gear mode. Supported values are 0, 1 and 2.
19
20If an optional property is not set in .dts file, then current value is kept
21unmodified (e.g. u-boot installed value).
22
23Additional information on operational parameters for the device is available
24in Documentation/hwmon/g762. A detailed datasheet for the device is available
25at http://natisbad.org/NAS/refs/GMT_EDS-762_763-080710-0.2.pdf.
26
27Example g762 node:
28
29 clocks {
30 #address-cells = <1>;
31 #size-cells = <0>;
32
33 g762_clk: fixedclk {
34 compatible = "fixed-clock";
35 #clock-cells = <0>;
36 clock-frequency = <8192>;
37 }
38 }
39
40 g762: g762@3e {
41 compatible = "gmt,g762";
42 reg = <0x3e>;
43 clocks = <&g762_clk>
44 fan_gear_mode = <0>; /* chip default */
45 fan_startv = <1>; /* chip default */
46 pwm_polarity = <0>; /* chip default */
47 };
diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
index e42a2ee233e6..7fd7fa25e9b0 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
@@ -10,6 +10,10 @@ Recommended properties :
10 10
11 - clock-frequency : desired I2C bus clock frequency in Hz. 11 - clock-frequency : desired I2C bus clock frequency in Hz.
12 12
13Optional properties :
14 - i2c-sda-hold-time-ns : should contain the SDA hold time in nanoseconds.
15 This option is only supported in hardware blocks version 1.11a or newer.
16
13Example : 17Example :
14 18
15 i2c@f0000 { 19 i2c@f0000 {
@@ -20,3 +24,14 @@ Example :
20 interrupts = <11>; 24 interrupts = <11>;
21 clock-frequency = <400000>; 25 clock-frequency = <400000>;
22 }; 26 };
27
28 i2c@1120000 {
29 #address-cells = <1>;
30 #size-cells = <0>;
31 compatible = "snps,designware-i2c";
32 reg = <0x1120000 0x1000>;
33 interrupt-parent = <&ictl>;
34 interrupts = <12 1>;
35 clock-frequency = <400000>;
36 i2c-sda-hold-time-ns = <300>;
37 };
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
index f46d928aa73d..a1ee681942cc 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
@@ -6,7 +6,11 @@ Required properties :
6 - reg : Offset and length of the register set for the device 6 - reg : Offset and length of the register set for the device
7 - compatible : Should be "marvell,mv64xxx-i2c" 7 - compatible : Should be "marvell,mv64xxx-i2c"
8 - interrupts : The interrupt number 8 - interrupts : The interrupt number
9 - clock-frequency : Desired I2C bus clock frequency in Hz. 9
10Optional properties :
11
12 - clock-frequency : Desired I2C bus clock frequency in Hz. If not set the
13default frequency is 100kHz
10 14
11Examples: 15Examples:
12 16
diff --git a/Documentation/devicetree/bindings/i2c/i2c-st-ddci2c.txt b/Documentation/devicetree/bindings/i2c/i2c-st-ddci2c.txt
new file mode 100644
index 000000000000..bd81a482634f
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-st-ddci2c.txt
@@ -0,0 +1,15 @@
1ST Microelectronics DDC I2C
2
3Required properties :
4- compatible : Must be "st,ddci2c"
5- reg: physical base address of the controller and length of memory mapped
6 region.
7- interrupts: interrupt number to the cpu.
8- #address-cells = <1>;
9- #size-cells = <0>;
10
11Optional properties:
12- Child nodes conforming to i2c bus binding
13
14Examples :
15
diff --git a/Documentation/devicetree/bindings/i2c/i2c-vt8500.txt b/Documentation/devicetree/bindings/i2c/i2c-vt8500.txt
new file mode 100644
index 000000000000..94a425eaa6c7
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-vt8500.txt
@@ -0,0 +1,24 @@
1* Wondermedia I2C Controller
2
3Required properties :
4
5 - compatible : should be "wm,wm8505-i2c"
6 - reg : Offset and length of the register set for the device
7 - interrupts : <IRQ> where IRQ is the interrupt number
8 - clocks : phandle to the I2C clock source
9
10Optional properties :
11
12 - clock-frequency : desired I2C bus clock frequency in Hz.
13 Valid values are 100000 and 400000.
14 Default to 100000 if not specified, or invalid value.
15
16Example :
17
18 i2c_0: i2c@d8280000 {
19 compatible = "wm,wm8505-i2c";
20 reg = <0xd8280000 0x1000>;
21 interrupts = <19>;
22 clocks = <&clki2c0>;
23 clock-frequency = <400000>;
24 };
diff --git a/Documentation/devicetree/bindings/i2c/ina2xx.txt b/Documentation/devicetree/bindings/i2c/ina2xx.txt
new file mode 100644
index 000000000000..a2ad85d7e747
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/ina2xx.txt
@@ -0,0 +1,22 @@
1ina2xx properties
2
3Required properties:
4- compatible: Must be one of the following:
5 - "ti,ina219" for ina219
6 - "ti,ina220" for ina220
7 - "ti,ina226" for ina226
8 - "ti,ina230" for ina230
9- reg: I2C address
10
11Optional properties:
12
13- shunt-resistor
14 Shunt resistor value in micro-Ohm
15
16Example:
17
18ina220@44 {
19 compatible = "ti,ina220";
20 reg = <0x44>;
21 shunt-resistor = <1000>;
22};
diff --git a/Documentation/devicetree/bindings/iio/dac/ad7303.txt b/Documentation/devicetree/bindings/iio/dac/ad7303.txt
new file mode 100644
index 000000000000..914610f0556e
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/ad7303.txt
@@ -0,0 +1,23 @@
1Analog Devices AD7303 DAC device driver
2
3Required properties:
4 - compatible: Must be "adi,ad7303"
5 - reg: SPI chip select number for the device
6 - spi-max-frequency: Max SPI frequency to use (< 30000000)
7 - Vdd-supply: Phandle to the Vdd power supply
8
9Optional properties:
10 - REF-supply: Phandle to the external reference voltage supply. This should
11 only be set if there is an external reference voltage connected to the REF
12 pin. If the property is not set Vdd/2 is used as the reference voltage.
13
14Example:
15
16 ad7303@4 {
17 compatible = "adi,ad7303";
18 reg = <4>;
19 spi-max-frequency = <10000000>;
20 Vdd-supply = <&vdd_supply>;
21 adi,use-external-reference;
22 REF-supply = <&vref_supply>;
23 };
diff --git a/Documentation/devicetree/bindings/iio/frequency/adf4350.txt b/Documentation/devicetree/bindings/iio/frequency/adf4350.txt
new file mode 100644
index 000000000000..f8c181d81d2d
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/frequency/adf4350.txt
@@ -0,0 +1,86 @@
1Analog Devices ADF4350/ADF4351 device driver
2
3Required properties:
4 - compatible: Should be one of
5 * "adi,adf4350": When using the ADF4350 device
6 * "adi,adf4351": When using the ADF4351 device
7 - reg: SPI chip select numbert for the device
8 - spi-max-frequency: Max SPI frequency to use (< 20000000)
9 - clocks: From common clock binding. Clock is phandle to clock for
10 ADF435x Reference Clock (CLKIN).
11
12Optional properties:
13 - gpios: GPIO Lock detect - If set with a valid phandle and GPIO number,
14 pll lock state is tested upon read.
15 - adi,channel-spacing: Channel spacing in Hz (influences MODULUS).
16 - adi,power-up-frequency: If set in Hz the PLL tunes to
17 the desired frequency on probe.
18 - adi,reference-div-factor: If set the driver skips dynamic calculation
19 and uses this default value instead.
20 - adi,reference-doubler-enable: Enables reference doubler.
21 - adi,reference-div2-enable: Enables reference divider.
22 - adi,phase-detector-polarity-positive-enable: Enables positive phase
23 detector polarity. Default = negative.
24 - adi,lock-detect-precision-6ns-enable: Enables 6ns lock detect precision.
25 Default = 10ns.
26 - adi,lock-detect-function-integer-n-enable: Enables lock detect
27 for integer-N mode. Default = factional-N mode.
28 - adi,charge-pump-current: Charge pump current in mA.
29 Default = 2500mA.
30 - adi,muxout-select: On chip multiplexer output selection.
31 Valid values for the multiplexer output are:
32 0: Three-State Output (default)
33 1: DVDD
34 2: DGND
35 3: R-Counter output
36 4: N-Divider output
37 5: Analog lock detect
38 6: Digital lock detect
39 - adi,low-spur-mode-enable: Enables low spur mode.
40 Default = Low noise mode.
41 - adi,cycle-slip-reduction-enable: Enables cycle slip reduction.
42 - adi,charge-cancellation-enable: Enabled charge pump
43 charge cancellation for integer-N modes.
44 - adi,anti-backlash-3ns-enable: Enables 3ns antibacklash pulse width
45 for integer-N modes.
46 - adi,band-select-clock-mode-high-enable: Enables faster band
47 selection logic.
48 - adi,12bit-clk-divider: Clock divider value used when
49 adi,12bit-clkdiv-mode != 0
50 - adi,clk-divider-mode:
51 Valid values for the clkdiv mode are:
52 0: Clock divider off (default)
53 1: Fast lock enable
54 2: Phase resync enable
55 - adi,aux-output-enable: Enables auxiliary RF output.
56 - adi,aux-output-fundamental-enable: Selects fundamental VCO output on
57 the auxiliary RF output. Default = Output of RF dividers.
58 - adi,mute-till-lock-enable: Enables Mute-Till-Lock-Detect function.
59 - adi,output-power: Output power selection.
60 Valid values for the power mode are:
61 0: -4dBm (default)
62 1: -1dBm
63 2: +2dBm
64 3: +5dBm
65 - adi,aux-output-power: Auxiliary output power selection.
66 Valid values for the power mode are:
67 0: -4dBm (default)
68 1: -1dBm
69 2: +2dBm
70 3: +5dBm
71
72
73Example:
74 lo_pll0_rx_adf4351: adf4351-rx-lpc@4 {
75 compatible = "adi,adf4351";
76 reg = <4>;
77 spi-max-frequency = <10000000>;
78 clocks = <&clk0_ad9523 9>;
79 clock-names = "clkin";
80 adi,channel-spacing = <10000>;
81 adi,power-up-frequency = <2400000000>;
82 adi,phase-detector-polarity-positive-enable;
83 adi,charge-pump-current = <2500>;
84 adi,output-power = <3>;
85 adi,mute-till-lock-enable;
86 };
diff --git a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt
new file mode 100644
index 000000000000..011679f1a425
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt
@@ -0,0 +1,18 @@
1* AsahiKASEI AK8975 magnetometer sensor
2
3Required properties:
4
5 - compatible : should be "asahi-kasei,ak8975"
6 - reg : the I2C address of the magnetometer
7
8Optional properties:
9
10 - gpios : should be device tree identifier of the magnetometer DRDY pin
11
12Example:
13
14ak8975@0c {
15 compatible = "asahi-kasei,ak8975";
16 reg = <0x0c>;
17 gpios = <&gpj0 7 0>;
18};
diff --git a/Documentation/devicetree/bindings/input/pxa27x-keypad.txt b/Documentation/devicetree/bindings/input/pxa27x-keypad.txt
new file mode 100644
index 000000000000..f8674f7e5ea5
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/pxa27x-keypad.txt
@@ -0,0 +1,60 @@
1* Marvell PXA Keypad controller
2
3Required Properties
4- compatible : should be "marvell,pxa27x-keypad"
5- reg : Address and length of the register set for the device
6- interrupts : The interrupt for the keypad controller
7- marvell,debounce-interval : How long time the key will be
8 recognized when it is pressed. It is a u32 value, and bit[31:16]
9 is debounce interval for direct key and bit[15:0] is debounce
10 interval for matrix key. The value is in binary number of 2ms
11
12Optional Properties For Matrix Keyes
13Please refer to matrix-keymap.txt
14
15Optional Properties for Direct Keyes
16- marvell,direct-key-count : How many direct keyes are used.
17- marvell,direct-key-mask : The mask indicates which keyes
18 are used. If bit[X] of the mask is set, the direct key X
19 is used.
20- marvell,direct-key-low-active : Direct key status register
21 tells the level of pins that connects to the direct keyes.
22 When this property is set, it means that when the pin level
23 is low, the key is pressed(active).
24- marvell,direct-key-map : It is a u16 array. Each item indicates
25 the linux key-code for the direct key.
26
27Optional Properties For Rotary
28- marvell,rotary0 : It is a u32 value. Bit[31:16] is the
29 linux key-code for rotary up. Bit[15:0] is the linux key-code
30 for rotary down. It is for rotary 0.
31- marvell,rotary1 : Same as marvell,rotary0. It is for rotary 1.
32- marvell,rotary-rel-key : When rotary is used for relative axes
33 in the device, the value indicates the key-code for relative
34 axes measurement in the device. It is a u32 value. Bit[31:16]
35 is for rotary 1, and Bit[15:0] is for rotary 0.
36
37Examples:
38 keypad: keypad@d4012000 {
39 keypad,num-rows = <3>;
40 keypad,num-columns = <5>;
41 linux,keymap = <0x0000000e /* KEY_BACKSPACE */
42 0x0001006b /* KEY_END */
43 0x00020061 /* KEY_RIGHTCTRL */
44 0x0003000b /* KEY_0 */
45 0x00040002 /* KEY_1 */
46 0x0100008b /* KEY_MENU */
47 0x01010066 /* KEY_HOME */
48 0x010200e7 /* KEY_SEND */
49 0x01030009 /* KEY_8 */
50 0x0104000a /* KEY_9 */
51 0x02000160 /* KEY_OK */
52 0x02010003 /* KEY_2 */
53 0x02020004 /* KEY_3 */
54 0x02030005 /* KEY_4 */
55 0x02040006>; /* KEY_5 */
56 marvell,rotary0 = <0x006c0067>; /* KEY_UP & KEY_DOWN */
57 marvell,direct-key-count = <1>;
58 marvell,direct-key-map = <0x001c>;
59 marvell,debounce-interval = <0x001e001e>;
60 };
diff --git a/Documentation/devicetree/bindings/input/samsung-keypad.txt b/Documentation/devicetree/bindings/input/samsung-keypad.txt
index ce3e394c0e64..942d071baaa5 100644
--- a/Documentation/devicetree/bindings/input/samsung-keypad.txt
+++ b/Documentation/devicetree/bindings/input/samsung-keypad.txt
@@ -25,14 +25,6 @@ Required Board Specific Properties:
25- samsung,keypad-num-columns: Number of column lines connected to the 25- samsung,keypad-num-columns: Number of column lines connected to the
26 keypad controller. 26 keypad controller.
27 27
28- row-gpios: List of gpios used as row lines. The gpio specifier for
29 this property depends on the gpio controller to which these row lines
30 are connected.
31
32- col-gpios: List of gpios used as column lines. The gpio specifier for
33 this property depends on the gpio controller to which these column
34 lines are connected.
35
36- Keys represented as child nodes: Each key connected to the keypad 28- Keys represented as child nodes: Each key connected to the keypad
37 controller is represented as a child node to the keypad controller 29 controller is represented as a child node to the keypad controller
38 device node and should include the following properties. 30 device node and should include the following properties.
@@ -41,6 +33,9 @@ Required Board Specific Properties:
41 - linux,code: the key-code to be reported when the key is pressed 33 - linux,code: the key-code to be reported when the key is pressed
42 and released. 34 and released.
43 35
36- pinctrl-0: Should specify pin control groups used for this controller.
37- pinctrl-names: Should contain only one value - "default".
38
44Optional Properties specific to linux: 39Optional Properties specific to linux:
45- linux,keypad-no-autorepeat: do no enable autorepeat feature. 40- linux,keypad-no-autorepeat: do no enable autorepeat feature.
46- linux,keypad-wakeup: use any event on keypad as wakeup event. 41- linux,keypad-wakeup: use any event on keypad as wakeup event.
@@ -56,17 +51,8 @@ Example:
56 linux,input-no-autorepeat; 51 linux,input-no-autorepeat;
57 linux,input-wakeup; 52 linux,input-wakeup;
58 53
59 row-gpios = <&gpx2 0 3 3 0 54 pinctrl-names = "default";
60 &gpx2 1 3 3 0>; 55 pinctrl-0 = <&keypad_rows &keypad_columns>;
61
62 col-gpios = <&gpx1 0 3 0 0
63 &gpx1 1 3 0 0
64 &gpx1 2 3 0 0
65 &gpx1 3 3 0 0
66 &gpx1 4 3 0 0
67 &gpx1 5 3 0 0
68 &gpx1 6 3 0 0
69 &gpx1 7 3 0 0>;
70 56
71 key_1 { 57 key_1 {
72 keypad,row = <0>; 58 keypad,row = <0>;
diff --git a/Documentation/devicetree/bindings/input/ti,nspire-keypad.txt b/Documentation/devicetree/bindings/input/ti,nspire-keypad.txt
new file mode 100644
index 000000000000..513d94d6e899
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,nspire-keypad.txt
@@ -0,0 +1,60 @@
1TI-NSPIRE Keypad
2
3Required properties:
4- compatible: Compatible property value should be "ti,nspire-keypad".
5
6- reg: Physical base address of the peripheral and length of memory mapped
7 region.
8
9- interrupts: The interrupt number for the peripheral.
10
11- scan-interval: How often to scan in us. Based on a APB speed of 33MHz, the
12 maximum and minimum delay time is ~2000us and ~500us respectively
13
14- row-delay: How long to wait before scanning each row.
15
16- clocks: The clock this peripheral is attached to.
17
18- linux,keymap: The keymap to use
19 (see Documentation/devicetree/bindings/input/matrix-keymap.txt)
20
21Optional properties:
22- active-low: Specify that the keypad is active low (i.e. logical low signifies
23 a key press).
24
25Example:
26
27input {
28 compatible = "ti,nspire-keypad";
29 reg = <0x900E0000 0x1000>;
30 interrupts = <16>;
31
32 scan-interval = <1000>;
33 row-delay = <200>;
34
35 clocks = <&apb_pclk>;
36
37 linux,keymap = <
38 0x0000001c 0x0001001c 0x00040039
39 0x0005002c 0x00060015 0x0007000b
40 0x0008000f 0x0100002d 0x01010011
41 0x0102002f 0x01030004 0x01040016
42 0x01050014 0x0106001f 0x01070002
43 0x010a006a 0x02000013 0x02010010
44 0x02020019 0x02030007 0x02040018
45 0x02050031 0x02060032 0x02070005
46 0x02080028 0x0209006c 0x03000026
47 0x03010025 0x03020024 0x0303000a
48 0x03040017 0x03050023 0x03060022
49 0x03070008 0x03080035 0x03090069
50 0x04000021 0x04010012 0x04020020
51 0x0404002e 0x04050030 0x0406001e
52 0x0407000d 0x04080037 0x04090067
53 0x05010038 0x0502000c 0x0503001b
54 0x05040034 0x0505001a 0x05060006
55 0x05080027 0x0509000e 0x050a006f
56 0x0600002b 0x0602004e 0x06030068
57 0x06040003 0x0605006d 0x06060009
58 0x06070001 0x0609000f 0x0708002a
59 0x0709001d 0x070a0033 >;
60};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/abilis,tb10x-ictl.txt b/Documentation/devicetree/bindings/interrupt-controller/abilis,tb10x-ictl.txt
new file mode 100644
index 000000000000..9d52d5afe3e9
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/abilis,tb10x-ictl.txt
@@ -0,0 +1,38 @@
1TB10x Top Level Interrupt Controller
2====================================
3
4The Abilis TB10x SOC contains a custom interrupt controller. It performs
5one-to-one mapping of external interrupt sources to CPU interrupts and
6provides support for reconfigurable trigger modes.
7
8Required properties
9-------------------
10
11- compatible: Should be "abilis,tb10x-ictl"
12- reg: specifies physical base address and size of register range.
13- interrupt-congroller: Identifies the node as an interrupt controller.
14- #interrupt cells: Specifies the number of cells used to encode an interrupt
15 source connected to this controller. The value shall be 2.
16- interrupt-parent: Specifies the parent interrupt controller.
17- interrupts: Specifies the list of interrupt lines which are handled by
18 the interrupt controller in the parent controller's notation. Interrupts
19 are mapped one-to-one to parent interrupts.
20
21Example
22-------
23
24intc: interrupt-controller { /* Parent interrupt controller */
25 interrupt-controller;
26 #interrupt-cells = <1>; /* For example below */
27 /* ... */
28};
29
30tb10x_ictl: pic@2000 { /* TB10x interrupt controller */
31 compatible = "abilis,tb10x-ictl";
32 reg = <0x2000 0x20>;
33 interrupt-controller;
34 #interrupt-cells = <2>;
35 interrupt-parent = <&intc>;
36 interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
37 20 21 22 23 24 25 26 27 28 29 30 31>;
38};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
index e7f4dc14eff2..57edb30dbbca 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
@@ -8,91 +8,8 @@ Required properties:
8- #interrupt-cells : Specifies the number of cells needed to encode an 8- #interrupt-cells : Specifies the number of cells needed to encode an
9 interrupt source. The value shall be 1. 9 interrupt source. The value shall be 1.
10 10
11The interrupt sources are as follows: 11For the valid interrupt sources for your SoC, see the documentation in
12 12sunxi/<soc>.txt
130: ENMI
141: UART0
152: UART1
163: UART2
174: UART3
185: IR0
196: IR1
207: I2C0
218: I2C1
229: I2C2
2310: SPI0
2411: SPI1
2512: SPI2
2613: SPDIF
2714: AC97
2815: TS
2916: I2S
3017: UART4
3118: UART5
3219: UART6
3320: UART7
3421: KEYPAD
3522: TIMER0
3623: TIMER1
3724: TIMER2
3825: TIMER3
3926: CAN
4027: DMA
4128: PIO
4229: TOUCH_PANEL
4330: AUDIO_CODEC
4431: LRADC
4532: SDMC0
4633: SDMC1
4734: SDMC2
4835: SDMC3
4936: MEMSTICK
5037: NAND
5138: USB0
5239: USB1
5340: USB2
5441: SCR
5542: CSI0
5643: CSI1
5744: LCDCTRL0
5845: LCDCTRL1
5946: MP
6047: DEFEBE0
6148: DEFEBE1
6249: PMU
6350: SPI3
6451: TZASC
6552: PATA
6653: VE
6754: SS
6855: EMAC
6956: SATA
7057: GPS
7158: HDMI
7259: TVE
7360: ACE
7461: TVD
7562: PS2_0
7663: PS2_1
7764: USB3
7865: USB4
7966: PLE_PFM
8067: TIMER4
8168: TIMER5
8269: GPU_GP
8370: GPU_GPMMU
8471: GPU_PP0
8572: GPU_PPMMU0
8673: GPU_PMU
8774: GPU_RSV0
8875: GPU_RSV1
8976: GPU_RSV2
9077: GPU_RSV3
9178: GPU_RSV4
9279: GPU_RSV5
9380: GPU_RSV6
9482: SYNC_TIMER0
9583: SYNC_TIMER1
96 13
97Example: 14Example:
98 15
diff --git a/Documentation/devicetree/bindings/interrupt-controller/marvell,orion-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/marvell,orion-intc.txt
new file mode 100644
index 000000000000..2c11ac76fac9
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/marvell,orion-intc.txt
@@ -0,0 +1,48 @@
1Marvell Orion SoC interrupt controllers
2
3* Main interrupt controller
4
5Required properties:
6- compatible: shall be "marvell,orion-intc"
7- reg: base address(es) of interrupt registers starting with CAUSE register
8- interrupt-controller: identifies the node as an interrupt controller
9- #interrupt-cells: number of cells to encode an interrupt source, shall be 1
10
11The interrupt sources map to the corresponding bits in the interrupt
12registers, i.e.
13- 0 maps to bit 0 of first base address,
14- 1 maps to bit 1 of first base address,
15- 32 maps to bit 0 of second base address, and so on.
16
17Example:
18 intc: interrupt-controller {
19 compatible = "marvell,orion-intc";
20 interrupt-controller;
21 #interrupt-cells = <1>;
22 /* Dove has 64 first level interrupts */
23 reg = <0x20200 0x10>, <0x20210 0x10>;
24 };
25
26* Bridge interrupt controller
27
28Required properties:
29- compatible: shall be "marvell,orion-bridge-intc"
30- reg: base address of bridge interrupt registers starting with CAUSE register
31- interrupts: bridge interrupt of the main interrupt controller
32- interrupt-controller: identifies the node as an interrupt controller
33- #interrupt-cells: number of cells to encode an interrupt source, shall be 1
34
35Optional properties:
36- marvell,#interrupts: number of interrupts provided by bridge interrupt
37 controller, defaults to 32 if not set
38
39Example:
40 bridge_intc: interrupt-controller {
41 compatible = "marvell,orion-bridge-intc";
42 interrupt-controller;
43 #interrupt-cells = <1>;
44 reg = <0x20110 0x8>;
45 interrupts = <0>;
46 /* Dove bridge provides 5 interrupts */
47 marvell,#interrupts = <5>;
48 };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
new file mode 100644
index 000000000000..1f8b0c507c26
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
@@ -0,0 +1,16 @@
1DT bindings for the R-/SH-Mobile irqpin controller
2
3Required properties:
4
5- compatible: has to be "renesas,intc-irqpin"
6- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
7 interrupts.txt in this directory
8
9Optional properties:
10
11- any properties, listed in interrupts.txt, and any standard resource allocation
12 properties
13- sense-bitfield-width: width of a single sense bitfield in the SENSE register,
14 if different from the default 4 bits
15- control-parent: disable and enable interrupts on the parent interrupt
16 controller, needed for some broken implementations
diff --git a/Documentation/devicetree/bindings/interrupt-controller/sunxi/sun4i-a10.txt b/Documentation/devicetree/bindings/interrupt-controller/sunxi/sun4i-a10.txt
new file mode 100644
index 000000000000..76b98c834499
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/sunxi/sun4i-a10.txt
@@ -0,0 +1,89 @@
1Allwinner A10 (sun4i) interrupt sources
2---------------------------------------
3
4The interrupt sources available for the Allwinner A10 SoC are the
5following one:
6
70: ENMI
81: UART0
92: UART1
103: UART2
114: UART3
125: IR0
136: IR1
147: I2C0
158: I2C1
169: I2C2
1710: SPI0
1811: SPI1
1912: SPI2
2013: SPDIF
2114: AC97
2215: TS
2316: I2S
2417: UART4
2518: UART5
2619: UART6
2720: UART7
2821: KEYPAD
2922: TIMER0
3023: TIMER1
3124: TIMER2
3225: TIMER3
3326: CAN
3427: DMA
3528: PIO
3629: TOUCH_PANEL
3730: AUDIO_CODEC
3831: LRADC
3932: MMC0
4033: MMC1
4134: MMC2
4235: MMC3
4336: MEMSTICK
4437: NAND
4538: USB0
4639: USB1
4740: USB2
4841: SCR
4942: CSI0
5043: CSI1
5144: LCDCTRL0
5245: LCDCTRL1
5346: MP
5447: DEFEBE0
5548: DEFEBE1
5649: PMU
5750: SPI3
5851: TZASC
5952: PATA
6053: VE
6154: SS
6255: EMAC
6356: SATA
6457: GPS
6558: HDMI
6659: TVE
6760: ACE
6861: TVD
6962: PS2_0
7063: PS2_1
7164: USB3
7265: USB4
7366: PLE_PFM
7467: TIMER4
7568: TIMER5
7669: GPU_GP
7770: GPU_GPMMU
7871: GPU_PP0
7972: GPU_PPMMU0
8073: GPU_PMU
8174: GPU_RSV0
8275: GPU_RSV1
8376: GPU_RSV2
8477: GPU_RSV3
8578: GPU_RSV4
8679: GPU_RSV5
8780: GPU_RSV6
8882: SYNC_TIMER0
8983: SYNC_TIMER1
diff --git a/Documentation/devicetree/bindings/interrupt-controller/sunxi/sun5i-a13.txt b/Documentation/devicetree/bindings/interrupt-controller/sunxi/sun5i-a13.txt
new file mode 100644
index 000000000000..2ec3b5ce1a0b
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/sunxi/sun5i-a13.txt
@@ -0,0 +1,55 @@
1Allwinner A13 (sun5i) interrupt sources
2---------------------------------------
3
4The interrupt sources available for the Allwinner A13 SoC are the
5following one:
6
70: ENMI
82: UART1
94: UART3
105: IR
117: I2C0
128: I2C1
139: I2C2
1410: SPI0
1511: SPI1
1612: SPI2
1722: TIMER0
1823: TIMER1
1924: TIMER2
2025: TIMER3
2127: DMA
2228: PIO
2329: TOUCH_PANEL
2430: AUDIO_CODEC
2531: LRADC
2632: MMC0
2733: MMC1
2834: MMC2
2937: NAND
3038: USB OTG
3139: USB EHCI
3240: USB OHCI
3342: CSI
3444: LCDCTRL
3547: DEFEBE
3649: PMU
3753: VE
3854: SS
3966: PLE_PFM
4067: TIMER4
4168: TIMER5
4269: GPU_GP
4370: GPU_GPMMU
4471: GPU_PP0
4572: GPU_PPMMU0
4673: GPU_PMU
4774: GPU_RSV0
4875: GPU_RSV1
4976: GPU_RSV2
5077: GPU_RSV3
5178: GPU_RSV4
5279: GPU_RSV5
5380: GPU_RSV6
5482: SYNC_TIMER0
5583: SYNC_TIMER1
diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
new file mode 100644
index 000000000000..d5176882d8b9
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
@@ -0,0 +1,147 @@
1Binding for TI/National Semiconductor LP55xx Led Drivers
2
3Required properties:
4- compatible: "national,lp5521" or "national,lp5523" or "ti,lp5562"
5- reg: I2C slave address
6- clock-mode: Input clock mode, (0: automode, 1: internal, 2: external)
7
8Each child has own specific current settings
9- led-cur: Current setting at each led channel (mA x10, 0 if led is not connected)
10- max-cur: Maximun current at each led channel.
11
12Optional properties:
13- label: Used for naming LEDs
14
15Alternatively, each child can have specific channel name
16- chan-name: Name of each channel name
17
18example 1) LP5521
193 LED channels, external clock used. Channel names are 'lp5521_pri:channel0',
20'lp5521_pri:channel1' and 'lp5521_pri:channel2'
21
22lp5521@32 {
23 compatible = "national,lp5521";
24 reg = <0x32>;
25 label = "lp5521_pri";
26 clock-mode = /bits/ 8 <2>;
27
28 chan0 {
29 led-cur = /bits/ 8 <0x2f>;
30 max-cur = /bits/ 8 <0x5f>;
31 };
32
33 chan1 {
34 led-cur = /bits/ 8 <0x2f>;
35 max-cur = /bits/ 8 <0x5f>;
36 };
37
38 chan2 {
39 led-cur = /bits/ 8 <0x2f>;
40 max-cur = /bits/ 8 <0x5f>;
41 };
42};
43
44example 2) LP5523
459 LED channels with specific name. Internal clock used.
46The I2C slave address is configurable with ASEL1 and ASEL0 pins.
47Available addresses are 32/33/34/35h.
48
49ASEL1 ASEL0 Address
50-------------------------
51 GND GND 32h
52 GND VEN 33h
53 VEN GND 34h
54 VEN VEN 35h
55
56lp5523@32 {
57 compatible = "national,lp5523";
58 reg = <0x32>;
59 clock-mode = /bits/ 8 <1>;
60
61 chan0 {
62 chan-name = "d1";
63 led-cur = /bits/ 8 <0x14>;
64 max-cur = /bits/ 8 <0x20>;
65 };
66
67 chan1 {
68 chan-name = "d2";
69 led-cur = /bits/ 8 <0x14>;
70 max-cur = /bits/ 8 <0x20>;
71 };
72
73 chan2 {
74 chan-name = "d3";
75 led-cur = /bits/ 8 <0x14>;
76 max-cur = /bits/ 8 <0x20>;
77 };
78
79 chan3 {
80 chan-name = "d4";
81 led-cur = /bits/ 8 <0x14>;
82 max-cur = /bits/ 8 <0x20>;
83 };
84
85 chan4 {
86 chan-name = "d5";
87 led-cur = /bits/ 8 <0x14>;
88 max-cur = /bits/ 8 <0x20>;
89 };
90
91 chan5 {
92 chan-name = "d6";
93 led-cur = /bits/ 8 <0x14>;
94 max-cur = /bits/ 8 <0x20>;
95 };
96
97 chan6 {
98 chan-name = "d7";
99 led-cur = /bits/ 8 <0x14>;
100 max-cur = /bits/ 8 <0x20>;
101 };
102
103 chan7 {
104 chan-name = "d8";
105 led-cur = /bits/ 8 <0x14>;
106 max-cur = /bits/ 8 <0x20>;
107 };
108
109 chan8 {
110 chan-name = "d9";
111 led-cur = /bits/ 8 <0x14>;
112 max-cur = /bits/ 8 <0x20>;
113 };
114};
115
116example 3) LP5562
1174 channels are defined.
118
119lp5562@30 {
120 compatible = "ti,lp5562";
121 reg = <0x30>;
122 clock-mode = /bits/8 <2>;
123
124 chan0 {
125 chan-name = "R";
126 led-cur = /bits/ 8 <0x20>;
127 max-cur = /bits/ 8 <0x60>;
128 };
129
130 chan1 {
131 chan-name = "G";
132 led-cur = /bits/ 8 <0x20>;
133 max-cur = /bits/ 8 <0x60>;
134 };
135
136 chan2 {
137 chan-name = "B";
138 led-cur = /bits/ 8 <0x20>;
139 max-cur = /bits/ 8 <0x60>;
140 };
141
142 chan3 {
143 chan-name = "W";
144 led-cur = /bits/ 8 <0x20>;
145 max-cur = /bits/ 8 <0x60>;
146 };
147};
diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt
index bf0182d8da25..df37b0230c75 100644
--- a/Documentation/devicetree/bindings/media/s5p-mfc.txt
+++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
@@ -15,6 +15,9 @@ Required properties:
15 mapped region. 15 mapped region.
16 16
17 - interrupts : MFC interrupt number to the CPU. 17 - interrupts : MFC interrupt number to the CPU.
18 - clocks : from common clock binding: handle to mfc clocks.
19 - clock-names : from common clock binding: must contain "sclk_mfc" and "mfc",
20 corresponding to entries in the clocks property.
18 21
19 - samsung,mfc-r : Base address of the first memory bank used by MFC 22 - samsung,mfc-r : Base address of the first memory bank used by MFC
20 for DMA contiguous memory allocation and its size. 23 for DMA contiguous memory allocation and its size.
@@ -34,6 +37,8 @@ mfc: codec@13400000 {
34 reg = <0x13400000 0x10000>; 37 reg = <0x13400000 0x10000>;
35 interrupts = <0 94 0>; 38 interrupts = <0 94 0>;
36 samsung,power-domain = <&pd_mfc>; 39 samsung,power-domain = <&pd_mfc>;
40 clocks = <&clock 170>, <&clock 273>;
41 clock-names = "sclk_mfc", "mfc";
37}; 42};
38 43
39Board specific DT entry: 44Board specific DT entry:
diff --git a/Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt b/Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt
new file mode 100644
index 000000000000..653c90c34a71
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt
@@ -0,0 +1,156 @@
1Device tree bindings for MVEBU Device Bus controllers
2
3The Device Bus controller available in some Marvell's SoC allows to control
4different types of standard memory and I/O devices such as NOR, NAND, and FPGA.
5The actual devices are instantiated from the child nodes of a Device Bus node.
6
7Required properties:
8
9 - compatible: Currently only Armada 370/XP SoC are supported,
10 with this compatible string:
11
12 marvell,mvebu-devbus
13
14 - reg: A resource specifier for the register space.
15 This is the base address of a chip select within
16 the controller's register space.
17 (see the example below)
18
19 - #address-cells: Must be set to 1
20 - #size-cells: Must be set to 1
21 - ranges: Must be set up to reflect the memory layout with four
22 integer values for each chip-select line in use:
23 0 <physical address of mapping> <size>
24
25Mandatory timing properties for child nodes:
26
27Read parameters:
28
29 - devbus,turn-off-ps: Defines the time during which the controller does not
30 drive the AD bus after the completion of a device read.
31 This prevents contentions on the Device Bus after a read
32 cycle from a slow device.
33
34 - devbus,bus-width: Defines the bus width (e.g. <16>)
35
36 - devbus,badr-skew-ps: Defines the time delay from from A[2:0] toggle,
37 to read data sample. This parameter is useful for
38 synchronous pipelined devices, where the address
39 precedes the read data by one or two cycles.
40
41 - devbus,acc-first-ps: Defines the time delay from the negation of
42 ALE[0] to the cycle that the first read data is sampled
43 by the controller.
44
45 - devbus,acc-next-ps: Defines the time delay between the cycle that
46 samples data N and the cycle that samples data N+1
47 (in burst accesses).
48
49 - devbus,rd-setup-ps: Defines the time delay between DEV_CSn assertion to
50 DEV_OEn assertion. If set to 0 (default),
51 DEV_OEn and DEV_CSn are asserted at the same cycle.
52 This parameter has no affect on <acc-first-ps> parameter
53 (no affect on first data sample). Set <rd-setup-ps>
54 to a value smaller than <acc-first-ps>.
55
56 - devbus,rd-hold-ps: Defines the time between the last data sample to the
57 de-assertion of DEV_CSn. If set to 0 (default),
58 DEV_OEn and DEV_CSn are de-asserted at the same cycle
59 (the cycle of the last data sample).
60 This parameter has no affect on DEV_OEn de-assertion.
61 DEV_OEn is always de-asserted the next cycle after
62 last data sampled. Also this parameter has no
63 affect on <turn-off-ps> parameter.
64 Set <rd-hold-ps> to a value smaller than <turn-off-ps>.
65
66Write parameters:
67
68 - devbus,ale-wr-ps: Defines the time delay from the ALE[0] negation cycle
69 to the DEV_WEn assertion.
70
71 - devbus,wr-low-ps: Defines the time during which DEV_WEn is active.
72 A[2:0] and Data are kept valid as long as DEV_WEn
73 is active. This parameter defines the setup time of
74 address and data to DEV_WEn rise.
75
76 - devbus,wr-high-ps: Defines the time during which DEV_WEn is kept
77 inactive (high) between data beats of a burst write.
78 DEV_A[2:0] and Data are kept valid (do not toggle) for
79 <wr-high-ps> - <tick> ps.
80 This parameter defines the hold time of address and
81 data after DEV_WEn rise.
82
83 - devbus,sync-enable: Synchronous device enable.
84 1: True
85 0: False
86
87An example for an Armada XP GP board, with a 16 MiB NOR device as child
88is showed below. Note that the Device Bus driver is in charge of allocating
89the mbus address decoding window for each of its child devices.
90The window is created using the chip select specified in the child
91device node together with the base address and size specified in the ranges
92property. For instance, in the example below the allocated decoding window
93will start at base address 0xf0000000, with a size 0x1000000 (16 MiB)
94for chip select 0 (a.k.a DEV_BOOTCS).
95
96This address window handling is done in this mvebu-devbus only as a temporary
97solution. It will be removed when the support for mbus device tree binding is
98added.
99
100The reg property implicitly specifies the chip select as this:
101
102 0x10400: DEV_BOOTCS
103 0x10408: DEV_CS0
104 0x10410: DEV_CS1
105 0x10418: DEV_CS2
106 0x10420: DEV_CS3
107
108Example:
109
110 devbus-bootcs@d0010400 {
111 status = "okay";
112 ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf0000000, size 0x1000000 */
113 #address-cells = <1>;
114 #size-cells = <1>;
115
116 /* Device Bus parameters are required */
117
118 /* Read parameters */
119 devbus,bus-width = <8>;
120 devbus,turn-off-ps = <60000>;
121 devbus,badr-skew-ps = <0>;
122 devbus,acc-first-ps = <124000>;
123 devbus,acc-next-ps = <248000>;
124 devbus,rd-setup-ps = <0>;
125 devbus,rd-hold-ps = <0>;
126
127 /* Write parameters */
128 devbus,sync-enable = <0>;
129 devbus,wr-high-ps = <60000>;
130 devbus,wr-low-ps = <60000>;
131 devbus,ale-wr-ps = <60000>;
132
133 flash@0 {
134 compatible = "cfi-flash";
135
136 /* 16 MiB */
137 reg = <0 0x1000000>;
138 bank-width = <2>;
139 #address-cells = <1>;
140 #size-cells = <1>;
141
142 /*
143 * We split the 16 MiB in two partitions,
144 * just as an example.
145 */
146 partition@0 {
147 label = "First";
148 reg = <0 0x800000>;
149 };
150
151 partition@800000 {
152 label = "Second";
153 reg = <0x800000 0x800000>;
154 };
155 };
156 };
diff --git a/Documentation/devicetree/bindings/metag/meta.txt b/Documentation/devicetree/bindings/metag/meta.txt
new file mode 100644
index 000000000000..f4457f57ab08
--- /dev/null
+++ b/Documentation/devicetree/bindings/metag/meta.txt
@@ -0,0 +1,30 @@
1* Meta Processor Binding
2
3This binding specifies what properties must be available in the device tree
4representation of a Meta Processor Core, which is the root node in the tree.
5
6Required properties:
7
8 - compatible: Specifies the compatibility list for the Meta processor.
9 The type shall be <string> and the value shall include "img,meta".
10
11Optional properties:
12
13 - clocks: Clock consumer specifiers as described in
14 Documentation/devicetree/bindings/clock/clock-bindings.txt
15
16 - clock-names: Clock consumer names as described in
17 Documentation/devicetree/bindings/clock/clock-bindings.txt.
18
19Clocks are identified by name. Valid clocks are:
20
21 - "core": The Meta core clock from which the Meta timers are derived.
22
23* Examples
24
25/ {
26 compatible = "toumaz,tz1090", "img,meta";
27
28 clocks = <&meta_core_clk>;
29 clock-names = "core";
30};
diff --git a/Documentation/devicetree/bindings/mfd/ab8500.txt b/Documentation/devicetree/bindings/mfd/ab8500.txt
index c3a14e0ad0ad..cd9e90c5d171 100644
--- a/Documentation/devicetree/bindings/mfd/ab8500.txt
+++ b/Documentation/devicetree/bindings/mfd/ab8500.txt
@@ -120,7 +120,7 @@ ab8500 {
120 "USB_LINK_STATUS", 120 "USB_LINK_STATUS",
121 "USB_ADP_PROBE_PLUG", 121 "USB_ADP_PROBE_PLUG",
122 "USB_ADP_PROBE_UNPLUG"; 122 "USB_ADP_PROBE_UNPLUG";
123 vddulpivio18-supply = <&ab8500_ldo_initcore_reg>; 123 vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
124 v-ape-supply = <&db8500_vape_reg>; 124 v-ape-supply = <&db8500_vape_reg>;
125 musb_1v8-supply = <&db8500_vsmps2_reg>; 125 musb_1v8-supply = <&db8500_vsmps2_reg>;
126 }; 126 };
diff --git a/Documentation/devicetree/bindings/mfd/arizona.txt b/Documentation/devicetree/bindings/mfd/arizona.txt
new file mode 100644
index 000000000000..0e295c9d8937
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/arizona.txt
@@ -0,0 +1,62 @@
1Wolfson Arizona class audio SoCs
2
3These devices are audio SoCs with extensive digital capabilites and a range
4of analogue I/O.
5
6Required properties:
7
8 - compatible : one of the following chip-specific strings:
9 "wlf,wm5102"
10 "wlf,wm5110"
11 - reg : I2C slave address when connected using I2C, chip select number when
12 using SPI.
13
14 - interrupts : The interrupt line the /IRQ signal for the device is
15 connected to.
16 - interrupt-controller : Arizona class devices contain interrupt controllers
17 and may provide interrupt services to other devices.
18 - interrupt-parent : The parent interrupt controller.
19 - #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
20 The first cell is the IRQ number.
21 The second cell is the flags, encoded as the trigger masks from
22 Documentation/devicetree/bindings/interrupts.txt
23
24 - gpio-controller : Indicates this device is a GPIO controller.
25 - #gpio-cells : Must be 2. The first cell is the pin number and the
26 second cell is used to specify optional parameters (currently unused).
27
28 - AVDD1-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
29 SPKVDDL-supply, SPKVDDR-supply : power supplies for the device, as covered
30 in Documentation/devicetree/bindings/regulator/regulator.txt
31
32Optional properties:
33
34 - wlf,reset : GPIO specifier for the GPIO controlling /RESET
35 - wlf,ldoena : GPIO specifier for the GPIO controlling LDOENA
36
37 - wlf,gpio-defaults : A list of GPIO configuration register values. If
38 absent, no configuration of these registers is performed. If any
39 entry has a value that is out of range for a 16 bit register then
40 the chip default will be used. If present exactly five values must
41 be specified.
42
43Example:
44
45codec: wm5102@1a {
46 compatible = "wlf,wm5102";
47 reg = <0x1a>;
48 interrupts = <347>;
49 #interrupt-cells = <2>;
50 interrupt-parent = <&gic>;
51
52 gpio-controller;
53 #gpio-cells = <2>;
54
55 wlf,gpio-defaults = <
56 0x00000000, /* AIF1TXLRCLK */
57 0xffffffff,
58 0xffffffff,
59 0xffffffff,
60 0xffffffff,
61 >;
62};
diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt
new file mode 100644
index 000000000000..11921cc417bf
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/max77693.txt
@@ -0,0 +1,55 @@
1Maxim MAX77693 multi-function device
2
3MAX77693 is a Multifunction device with the following submodules:
4- PMIC,
5- CHARGER,
6- LED,
7- MUIC,
8- HAPTIC
9
10It is interfaced to host controller using i2c.
11This document describes the bindings for the mfd device.
12
13Required properties:
14- compatible : Must be "maxim,max77693".
15- reg : Specifies the i2c slave address of PMIC block.
16- interrupts : This i2c device has an IRQ line connected to the main SoC.
17- interrupt-parent : The parent interrupt controller.
18
19Optional properties:
20- regulators : The regulators of max77693 have to be instantiated under subnod
21 named "regulators" using the following format.
22
23 regulators {
24 regualtor-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER
25 standard regulator constratints[*].
26 };
27
28 [*] refer Documentation/devicetree/bindings/regulator/regulator.txt
29
30Example:
31 max77693@66 {
32 compatible = "maxim,max77693";
33 reg = <0x66>;
34 interrupt-parent = <&gpx1>;
35 interrupts = <5 2>;
36
37 regulators {
38 esafeout@1 {
39 regulator-compatible = "ESAFEOUT1";
40 regulator-name = "ESAFEOUT1";
41 regulator-boot-on;
42 };
43 esafeout@2 {
44 regulator-compatible = "ESAFEOUT2";
45 regulator-name = "ESAFEOUT2";
46 };
47 charger@0 {
48 regulator-compatible = "CHARGER";
49 regulator-name = "CHARGER";
50 regulator-min-microamp = <60000>;
51 regulator-max-microamp = <2580000>;
52 regulator-boot-on;
53 };
54 };
55 };
diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt
new file mode 100644
index 000000000000..892537d1a48f
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/palmas.txt
@@ -0,0 +1,49 @@
1* palmas device tree bindings
2
3The TI palmas family current members :-
4twl6035 (palmas)
5twl6037 (palmas)
6tps65913 (palmas)
7tps65914 (palmas)
8
9Required properties:
10- compatible : Should be from the list
11 ti,twl6035
12 ti,twl6036
13 ti,twl6037
14 ti,tps65913
15 ti,tps65914
16 ti,tps80036
17and also the generic series names
18 ti,palmas
19- interrupt-controller : palmas has its own internal IRQs
20- #interrupt-cells : should be set to 2 for IRQ number and flags
21 The first cell is the IRQ number.
22 The second cell is the flags, encoded as the trigger masks from
23 Documentation/devicetree/bindings/interrupts.txt
24- interrupt-parent : The parent interrupt controller.
25
26Optional properties:
27 ti,mux-padX : set the pad register X (1-2) to the correct muxing for the
28 hardware, if not set will use muxing in OTP.
29
30Example:
31
32palmas {
33 compatible = "ti,twl6035", "ti,palmas";
34 reg = <0x48>
35 interrupt-parent = <&intc>;
36 interrupt-controller;
37 #interrupt-cells = <2>;
38
39 ti,mux-pad1 = <0>;
40 ti,mux-pad2 = <0>;
41
42 #address-cells = <1>;
43 #size-cells = <0>;
44
45 pmic {
46 compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
47 ....
48 };
49}
diff --git a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt b/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt
new file mode 100644
index 000000000000..094ae010f2fb
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt
@@ -0,0 +1,16 @@
1Broadcom BCM281xx SDHCI
2
3This file documents differences between the core properties in mmc.txt
4and the properties present in the bcm281xx SDHCI
5
6Required properties:
7- compatible : Should be "bcm,kona-sdhci"
8
9Example:
10
11sdio2: sdio@0x3f1a0000 {
12 compatible = "bcm,kona-sdhci";
13 reg = <0x3f1a0000 0x10000>;
14 interrupts = <0x0 74 0x4>;
15};
16
diff --git a/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt
index 726fd2122a13..1180d7814af8 100644
--- a/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt
@@ -51,7 +51,7 @@ Optional properties:
51* card-detect-delay: Delay in milli-seconds before detecting card after card 51* card-detect-delay: Delay in milli-seconds before detecting card after card
52 insert event. The default value is 0. 52 insert event. The default value is 0.
53 53
54* supports-highspeed: Enables support for high speed cards (upto 50MHz) 54* supports-highspeed: Enables support for high speed cards (up to 50MHz)
55 55
56* broken-cd: as documented in mmc core bindings. 56* broken-cd: as documented in mmc core bindings.
57 57
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
index 6a983c1d87cd..df338cb5059c 100644
--- a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
@@ -29,6 +29,13 @@ Optional properties:
29 "bch4" 4-bit BCH ecc code 29 "bch4" 4-bit BCH ecc code
30 "bch8" 8-bit BCH ecc code 30 "bch8" 8-bit BCH ecc code
31 31
32 - ti,nand-xfer-type: A string setting the data transfer type. One of:
33
34 "prefetch-polled" Prefetch polled mode (default)
35 "polled" Polled mode, without prefetch
36 "prefetch-dma" Prefetch enabled sDMA mode
37 "prefetch-irq" Prefetch enabled irq mode
38
32 - elm_id: Specifies elm device node. This is required to support BCH 39 - elm_id: Specifies elm device node. This is required to support BCH
33 error correction using ELM module. 40 error correction using ELM module.
34 41
@@ -55,6 +62,7 @@ Example for an AM33xx board:
55 reg = <0 0 0>; /* CS0, offset 0 */ 62 reg = <0 0 0>; /* CS0, offset 0 */
56 nand-bus-width = <16>; 63 nand-bus-width = <16>;
57 ti,nand-ecc-opt = "bch8"; 64 ti,nand-ecc-opt = "bch8";
65 ti,nand-xfer-type = "polled";
58 66
59 gpmc,sync-clk-ps = <0>; 67 gpmc,sync-clk-ps = <0>;
60 gpmc,cs-on-ns = <0>; 68 gpmc,cs-on-ns = <0>;
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt
new file mode 100644
index 000000000000..e2371f5cdebe
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt
@@ -0,0 +1,73 @@
1* Synopsis Designware PCIe interface
2
3Required properties:
4- compatible: should contain "snps,dw-pcie" to identify the
5 core, plus an identifier for the specific instance, such
6 as "samsung,exynos5440-pcie".
7- reg: base addresses and lengths of the pcie controller,
8 the phy controller, additional register for the phy controller.
9- interrupts: interrupt values for level interrupt,
10 pulse interrupt, special interrupt.
11- clocks: from common clock binding: handle to pci clock.
12- clock-names: from common clock binding: should be "pcie" and "pcie_bus".
13- #address-cells: set to <3>
14- #size-cells: set to <2>
15- device_type: set to "pci"
16- ranges: ranges for the PCI memory and I/O regions
17- #interrupt-cells: set to <1>
18- interrupt-map-mask and interrupt-map: standard PCI properties
19 to define the mapping of the PCIe interface to interrupt
20 numbers.
21- reset-gpio: gpio pin number of power good signal
22
23Example:
24
25SoC specific DT Entry:
26
27 pcie@290000 {
28 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
29 reg = <0x290000 0x1000
30 0x270000 0x1000
31 0x271000 0x40>;
32 interrupts = <0 20 0>, <0 21 0>, <0 22 0>;
33 clocks = <&clock 28>, <&clock 27>;
34 clock-names = "pcie", "pcie_bus";
35 #address-cells = <3>;
36 #size-cells = <2>;
37 device_type = "pci";
38 ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000 /* configuration space */
39 0x81000000 0 0 0x40001000 0 0x00010000 /* downstream I/O */
40 0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
41 #interrupt-cells = <1>;
42 interrupt-map-mask = <0 0 0 0>;
43 interrupt-map = <0x0 0 &gic 53>;
44 };
45
46 pcie@2a0000 {
47 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
48 reg = <0x2a0000 0x1000
49 0x272000 0x1000
50 0x271040 0x40>;
51 interrupts = <0 23 0>, <0 24 0>, <0 25 0>;
52 clocks = <&clock 29>, <&clock 27>;
53 clock-names = "pcie", "pcie_bus";
54 #address-cells = <3>;
55 #size-cells = <2>;
56 device_type = "pci";
57 ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000 /* configuration space */
58 0x81000000 0 0 0x60001000 0 0x00010000 /* downstream I/O */
59 0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
60 #interrupt-cells = <1>;
61 interrupt-map-mask = <0 0 0 0>;
62 interrupt-map = <0x0 0 &gic 56>;
63 };
64
65Board specific DT Entry:
66
67 pcie@290000 {
68 reset-gpio = <&pin_ctrl 5 0>;
69 };
70
71 pcie@2a0000 {
72 reset-gpio = <&pin_ctrl 22 0>;
73 };
diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt
new file mode 100644
index 000000000000..f8d405897a94
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt
@@ -0,0 +1,221 @@
1* Marvell EBU PCIe interfaces
2
3Mandatory properties:
4- compatible: one of the following values:
5 marvell,armada-370-pcie
6 marvell,armada-xp-pcie
7 marvell,kirkwood-pcie
8- #address-cells, set to <3>
9- #size-cells, set to <2>
10- #interrupt-cells, set to <1>
11- bus-range: PCI bus numbers covered
12- device_type, set to "pci"
13- ranges: ranges for the PCI memory and I/O regions, as well as the
14 MMIO registers to control the PCIe interfaces.
15
16In addition, the Device Tree node must have sub-nodes describing each
17PCIe interface, having the following mandatory properties:
18- reg: used only for interrupt mapping, so only the first four bytes
19 are used to refer to the correct bus number and device number.
20- assigned-addresses: reference to the MMIO registers used to control
21 this PCIe interface.
22- clocks: the clock associated to this PCIe interface
23- marvell,pcie-port: the physical PCIe port number
24- status: either "disabled" or "okay"
25- device_type, set to "pci"
26- #address-cells, set to <3>
27- #size-cells, set to <2>
28- #interrupt-cells, set to <1>
29- ranges, empty property.
30- interrupt-map-mask and interrupt-map, standard PCI properties to
31 define the mapping of the PCIe interface to interrupt numbers.
32
33and the following optional properties:
34- marvell,pcie-lane: the physical PCIe lane number, for ports having
35 multiple lanes. If this property is not found, we assume that the
36 value is 0.
37
38Example:
39
40pcie-controller {
41 compatible = "marvell,armada-xp-pcie";
42 status = "disabled";
43 device_type = "pci";
44
45 #address-cells = <3>;
46 #size-cells = <2>;
47
48 bus-range = <0x00 0xff>;
49
50 ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */
51 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */
52 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */
53 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */
54 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */
55 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */
56 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */
57 0x82000000 0 0xd0084000 0xd0084000 0 0x00002000 /* Port 1.1 registers */
58 0x82000000 0 0xd0088000 0xd0088000 0 0x00002000 /* Port 1.2 registers */
59 0x82000000 0 0xd008c000 0xd008c000 0 0x00002000 /* Port 1.3 registers */
60 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */
61 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */
62
63 pcie@1,0 {
64 device_type = "pci";
65 assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>;
66 reg = <0x0800 0 0 0 0>;
67 #address-cells = <3>;
68 #size-cells = <2>;
69 #interrupt-cells = <1>;
70 ranges;
71 interrupt-map-mask = <0 0 0 0>;
72 interrupt-map = <0 0 0 0 &mpic 58>;
73 marvell,pcie-port = <0>;
74 marvell,pcie-lane = <0>;
75 clocks = <&gateclk 5>;
76 status = "disabled";
77 };
78
79 pcie@2,0 {
80 device_type = "pci";
81 assigned-addresses = <0x82001000 0 0xd0044000 0 0x2000>;
82 reg = <0x1000 0 0 0 0>;
83 #address-cells = <3>;
84 #size-cells = <2>;
85 #interrupt-cells = <1>;
86 ranges;
87 interrupt-map-mask = <0 0 0 0>;
88 interrupt-map = <0 0 0 0 &mpic 59>;
89 marvell,pcie-port = <0>;
90 marvell,pcie-lane = <1>;
91 clocks = <&gateclk 6>;
92 status = "disabled";
93 };
94
95 pcie@3,0 {
96 device_type = "pci";
97 assigned-addresses = <0x82001800 0 0xd0048000 0 0x2000>;
98 reg = <0x1800 0 0 0 0>;
99 #address-cells = <3>;
100 #size-cells = <2>;
101 #interrupt-cells = <1>;
102 ranges;
103 interrupt-map-mask = <0 0 0 0>;
104 interrupt-map = <0 0 0 0 &mpic 60>;
105 marvell,pcie-port = <0>;
106 marvell,pcie-lane = <2>;
107 clocks = <&gateclk 7>;
108 status = "disabled";
109 };
110
111 pcie@4,0 {
112 device_type = "pci";
113 assigned-addresses = <0x82002000 0 0xd004c000 0 0x2000>;
114 reg = <0x2000 0 0 0 0>;
115 #address-cells = <3>;
116 #size-cells = <2>;
117 #interrupt-cells = <1>;
118 ranges;
119 interrupt-map-mask = <0 0 0 0>;
120 interrupt-map = <0 0 0 0 &mpic 61>;
121 marvell,pcie-port = <0>;
122 marvell,pcie-lane = <3>;
123 clocks = <&gateclk 8>;
124 status = "disabled";
125 };
126
127 pcie@5,0 {
128 device_type = "pci";
129 assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>;
130 reg = <0x2800 0 0 0 0>;
131 #address-cells = <3>;
132 #size-cells = <2>;
133 #interrupt-cells = <1>;
134 ranges;
135 interrupt-map-mask = <0 0 0 0>;
136 interrupt-map = <0 0 0 0 &mpic 62>;
137 marvell,pcie-port = <1>;
138 marvell,pcie-lane = <0>;
139 clocks = <&gateclk 9>;
140 status = "disabled";
141 };
142
143 pcie@6,0 {
144 device_type = "pci";
145 assigned-addresses = <0x82003000 0 0xd0084000 0 0x2000>;
146 reg = <0x3000 0 0 0 0>;
147 #address-cells = <3>;
148 #size-cells = <2>;
149 #interrupt-cells = <1>;
150 ranges;
151 interrupt-map-mask = <0 0 0 0>;
152 interrupt-map = <0 0 0 0 &mpic 63>;
153 marvell,pcie-port = <1>;
154 marvell,pcie-lane = <1>;
155 clocks = <&gateclk 10>;
156 status = "disabled";
157 };
158
159 pcie@7,0 {
160 device_type = "pci";
161 assigned-addresses = <0x82003800 0 0xd0088000 0 0x2000>;
162 reg = <0x3800 0 0 0 0>;
163 #address-cells = <3>;
164 #size-cells = <2>;
165 #interrupt-cells = <1>;
166 ranges;
167 interrupt-map-mask = <0 0 0 0>;
168 interrupt-map = <0 0 0 0 &mpic 64>;
169 marvell,pcie-port = <1>;
170 marvell,pcie-lane = <2>;
171 clocks = <&gateclk 11>;
172 status = "disabled";
173 };
174
175 pcie@8,0 {
176 device_type = "pci";
177 assigned-addresses = <0x82004000 0 0xd008c000 0 0x2000>;
178 reg = <0x4000 0 0 0 0>;
179 #address-cells = <3>;
180 #size-cells = <2>;
181 #interrupt-cells = <1>;
182 ranges;
183 interrupt-map-mask = <0 0 0 0>;
184 interrupt-map = <0 0 0 0 &mpic 65>;
185 marvell,pcie-port = <1>;
186 marvell,pcie-lane = <3>;
187 clocks = <&gateclk 12>;
188 status = "disabled";
189 };
190 pcie@9,0 {
191 device_type = "pci";
192 assigned-addresses = <0x82004800 0 0xd0042000 0 0x2000>;
193 reg = <0x4800 0 0 0 0>;
194 #address-cells = <3>;
195 #size-cells = <2>;
196 #interrupt-cells = <1>;
197 ranges;
198 interrupt-map-mask = <0 0 0 0>;
199 interrupt-map = <0 0 0 0 &mpic 99>;
200 marvell,pcie-port = <2>;
201 marvell,pcie-lane = <0>;
202 clocks = <&gateclk 26>;
203 status = "disabled";
204 };
205
206 pcie@10,0 {
207 device_type = "pci";
208 assigned-addresses = <0x82005000 0 0xd0082000 0 0x2000>;
209 reg = <0x5000 0 0 0 0>;
210 #address-cells = <3>;
211 #size-cells = <2>;
212 #interrupt-cells = <1>;
213 ranges;
214 interrupt-map-mask = <0 0 0 0>;
215 interrupt-map = <0 0 0 0 &mpic 103>;
216 marvell,pcie-port = <3>;
217 marvell,pcie-lane = <0>;
218 clocks = <&gateclk 27>;
219 status = "disabled";
220 };
221};
diff --git a/Documentation/devicetree/bindings/pci/pci.txt b/Documentation/devicetree/bindings/pci/pci.txt
new file mode 100644
index 000000000000..41aeed38926d
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/pci.txt
@@ -0,0 +1,9 @@
1PCI bus bridges have standardized Device Tree bindings:
2
3PCI Bus Binding to: IEEE Std 1275-1994
4http://www.openfirmware.org/ofwg/bindings/pci/pci2_1.pdf
5
6And for the interrupt mapping part:
7
8Open Firmware Recommended Practice: Interrupt Mapping
9http://www.openfirmware.org/1275/practice/imap/imap0_9d.pdf
diff --git a/Documentation/devicetree/bindings/pci/v3-v360epc-pci.txt b/Documentation/devicetree/bindings/pci/v3-v360epc-pci.txt
new file mode 100644
index 000000000000..30b364e504ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/v3-v360epc-pci.txt
@@ -0,0 +1,15 @@
1V3 Semiconductor V360 EPC PCI bridge
2
3This bridge is found in the ARM Integrator/AP (Application Platform)
4
5Integrator-specific notes:
6
7- syscon: should contain a link to the syscon device node (since
8 on the Integrator, some registers in the syscon are required to
9 operate the V3).
10
11V360 EPC specific notes:
12
13- reg: should contain the base address of the V3 adapter.
14- interrupts: should contain a reference to the V3 error interrupt
15 as routed on the system.
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
index bcfdab5d442e..3a7caf7a744a 100644
--- a/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
@@ -58,7 +58,7 @@ Some requirements for using fsl,imx-pinctrl binding:
58 58
59Examples: 59Examples:
60usdhc@0219c000 { /* uSDHC4 */ 60usdhc@0219c000 { /* uSDHC4 */
61 fsl,card-wired; 61 non-removable;
62 vmmc-supply = <&reg_3p3v>; 62 vmmc-supply = <&reg_3p3v>;
63 status = "okay"; 63 status = "okay";
64 pinctrl-names = "default"; 64 pinctrl-names = "default";
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,vf610-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,vf610-pinctrl.txt
new file mode 100644
index 000000000000..ddcdeb697c29
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,vf610-pinctrl.txt
@@ -0,0 +1,41 @@
1Freescale Vybrid VF610 IOMUX Controller
2
3Please refer to fsl,imx-pinctrl.txt in this directory for common binding part
4and usage.
5
6Required properties:
7- compatible: "fsl,vf610-iomuxc"
8- fsl,pins: two integers array, represents a group of pins mux and config
9 setting. The format is fsl,pins = <PIN_FUNC_ID CONFIG>, PIN_FUNC_ID is
10 a pin working on a specific function, CONFIG is the pad setting value
11 such as pull-up, speed, ode for this pin. Please refer to Vybrid VF610
12 datasheet for the valid pad config settings.
13
14CONFIG bits definition:
15PAD_CTL_SPEED_LOW (1 << 12)
16PAD_CTL_SPEED_MED (2 << 12)
17PAD_CTL_SPEED_HIGH (3 << 12)
18PAD_CTL_SRE_FAST (1 << 11)
19PAD_CTL_SRE_SLOW (0 << 11)
20PAD_CTL_ODE (1 << 10)
21PAD_CTL_HYS (1 << 9)
22PAD_CTL_DSE_DISABLE (0 << 6)
23PAD_CTL_DSE_150ohm (1 << 6)
24PAD_CTL_DSE_75ohm (2 << 6)
25PAD_CTL_DSE_50ohm (3 << 6)
26PAD_CTL_DSE_37ohm (4 << 6)
27PAD_CTL_DSE_30ohm (5 << 6)
28PAD_CTL_DSE_25ohm (6 << 6)
29PAD_CTL_DSE_20ohm (7 << 6)
30PAD_CTL_PUS_100K_DOWN (0 << 4)
31PAD_CTL_PUS_47K_UP (1 << 4)
32PAD_CTL_PUS_100K_UP (2 << 4)
33PAD_CTL_PUS_22K_UP (3 << 4)
34PAD_CTL_PKE (1 << 3)
35PAD_CTL_PUE (1 << 2)
36PAD_CTL_OBE_ENABLE (1 << 1)
37PAD_CTL_IBE_ENABLE (1 << 0)
38PAD_CTL_OBE_IBE_ENABLE (3 << 0)
39
40Please refer to vf610-pinfunc.h in device tree source folder
41for all available PIN_FUNC_ID for Vybrid VF610.
diff --git a/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt
new file mode 100644
index 000000000000..a186181c402b
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/img,tz1090-pdc-pinctrl.txt
@@ -0,0 +1,127 @@
1ImgTec TZ1090 PDC pin controller
2
3Required properties:
4- compatible: "img,tz1090-pdc-pinctrl"
5- reg: Should contain the register physical address and length of the
6 SOC_GPIO_CONTROL registers in the PDC register region.
7
8Please refer to pinctrl-bindings.txt in this directory for details of the
9common pinctrl bindings used by client devices, including the meaning of the
10phrase "pin configuration node".
11
12TZ1090-PDC's pin configuration nodes act as a container for an abitrary number
13of subnodes. Each of these subnodes represents some desired configuration for a
14pin, a group, or a list of pins or groups. This configuration can include the
15mux function to select on those pin(s)/group(s), and various pin configuration
16parameters, such as pull-up, drive strength, etc.
17
18The name of each subnode is not important; all subnodes should be enumerated
19and processed purely based on their content.
20
21Each subnode only affects those parameters that are explicitly listed. In
22other words, a subnode that lists a mux function but no pin configuration
23parameters implies no information about any pin configuration parameters.
24Similarly, a pin subnode that describes a pullup parameter implies no
25information about e.g. the mux function. For this reason, even seemingly boolean
26values are actually tristates in this binding: unspecified, off, or on.
27Unspecified is represented as an absent property, and off/on are represented as
28integer values 0 and 1.
29
30Required subnode-properties:
31- tz1090,pins : An array of strings. Each string contains the name of a pin or
32 group. Valid values for these names are listed below.
33
34Optional subnode-properties:
35- tz1090,function: A string containing the name of the function to mux to the
36 pin or group. Valid values for function names are listed below, including
37 which pingroups can be muxed to them.
38- supported generic pinconfig properties (for further details see
39 Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt):
40 - bias-disable
41 - bias-high-impedance
42 - bias-bus-hold
43 - bias-pull-up
44 - bias-pull-down
45 - input-schmitt-enable
46 - input-schmitt-disable
47 - drive-strength: Integer, control drive strength of pins in mA.
48 2: 2mA
49 4: 4mA
50 8: 8mA
51 12: 12mA
52 - low-power-enable: Flag, power-on-start weak pull-down for invalid power.
53 - low-power-disable: Flag, power-on-start weak pull-down disabled.
54
55Note that many of these properties are only valid for certain specific pins
56or groups. See the TZ1090 TRM for complete details regarding which groups
57support which functionality. The Linux pinctrl driver may also be a useful
58reference.
59
60Valid values for pin and group names are:
61
62 pins:
63
64 These all support bias-high-impediance, bias-pull-up, bias-pull-down, and
65 bias-bus-hold (which can also be provided to any of the groups below to set
66 it for all gpio pins in that group).
67
68 gpio0, gpio1, sys_wake0, sys_wake1, sys_wake2, ir_data, ext_power.
69
70 mux groups:
71
72 These all support function.
73
74 gpio0
75 pins: gpio0.
76 function: ir_mod_stable_out.
77 gpio1
78 pins: gpio1.
79 function: ir_mod_power_out.
80
81 drive groups:
82
83 These support input-schmitt-enable, input-schmitt-disable,
84 drive-strength, low-power-enable, and low-power-disable.
85
86 pdc
87 pins: gpio0, gpio1, sys_wake0, sys_wake1, sys_wake2, ir_data,
88 ext_power.
89
90Example:
91
92 pinctrl_pdc: pinctrl@02006500 {
93 #gpio-range-cells = <3>;
94 compatible = "img,tz1090-pdc-pinctrl";
95 reg = <0x02006500 0x100>;
96 };
97
98Example board file extracts:
99
100 &pinctrl_pdc {
101 pinctrl-names = "default";
102 pinctrl-0 = <&syswake_default>;
103
104 syswake_default: syswakes {
105 syswake_cfg {
106 tz1090,pins = "sys_wake0",
107 "sys_wake1",
108 "sys_wake2";
109 pull-up;
110 };
111 };
112 irmod_default: irmod {
113 gpio0_cfg {
114 tz1090,pins = "gpio0";
115 tz1090,function = "ir_mod_stable_out";
116 };
117 gpio1_cfg {
118 tz1090,pins = "gpio1";
119 tz1090,function = "ir_mod_power_out";
120 };
121 };
122 };
123
124 ir: ir@02006200 {
125 pinctrl-names = "default";
126 pinctrl-0 = <&irmod_default>;
127 };
diff --git a/Documentation/devicetree/bindings/pinctrl/img,tz1090-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/img,tz1090-pinctrl.txt
new file mode 100644
index 000000000000..4b27c99f7f9d
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/img,tz1090-pinctrl.txt
@@ -0,0 +1,227 @@
1ImgTec TZ1090 pin controller
2
3Required properties:
4- compatible: "img,tz1090-pinctrl"
5- reg: Should contain the register physical address and length of the pad
6 configuration registers (CR_PADS_* and CR_IF_CTL0).
7
8Please refer to pinctrl-bindings.txt in this directory for details of the
9common pinctrl bindings used by client devices, including the meaning of the
10phrase "pin configuration node".
11
12TZ1090's pin configuration nodes act as a container for an abitrary number of
13subnodes. Each of these subnodes represents some desired configuration for a
14pin, a group, or a list of pins or groups. This configuration can include the
15mux function to select on those pin(s)/group(s), and various pin configuration
16parameters, such as pull-up, drive strength, etc.
17
18The name of each subnode is not important; all subnodes should be enumerated
19and processed purely based on their content.
20
21Each subnode only affects those parameters that are explicitly listed. In
22other words, a subnode that lists a mux function but no pin configuration
23parameters implies no information about any pin configuration parameters.
24Similarly, a pin subnode that describes a pullup parameter implies no
25information about e.g. the mux function. For this reason, even seemingly boolean
26values are actually tristates in this binding: unspecified, off, or on.
27Unspecified is represented as an absent property, and off/on are represented as
28integer values 0 and 1.
29
30Required subnode-properties:
31- tz1090,pins : An array of strings. Each string contains the name of a pin or
32 group. Valid values for these names are listed below.
33
34Optional subnode-properties:
35- tz1090,function: A string containing the name of the function to mux to the
36 pin or group. Valid values for function names are listed below, including
37 which pingroups can be muxed to them.
38- supported generic pinconfig properties (for further details see
39 Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt):
40 - bias-disable
41 - bias-high-impedance
42 - bias-bus-hold
43 - bias-pull-up
44 - bias-pull-down
45 - input-schmitt-enable
46 - input-schmitt-disable
47 - drive-strength: Integer, control drive strength of pins in mA.
48 2: 2mA
49 4: 4mA
50 8: 8mA
51 12: 12mA
52
53
54Note that many of these properties are only valid for certain specific pins
55or groups. See the TZ1090 TRM for complete details regarding which groups
56support which functionality. The Linux pinctrl driver may also be a useful
57reference.
58
59Valid values for pin and group names are:
60
61 gpio pins:
62
63 These all support bias-high-impediance, bias-pull-up, bias-pull-down, and
64 bias-bus-hold (which can also be provided to any of the groups below to set
65 it for all pins in that group).
66
67 They also all support the some form of muxing. Any pins which are contained
68 in one of the mux groups (see below) can be muxed only to the functions
69 supported by the mux group. All other pins can be muxed to the "perip"
70 function which which enables them with their intended peripheral.
71
72 Different pins in the same mux group cannot be muxed to different functions,
73 however it is possible to mux only a subset of the pins in a mux group to a
74 particular function and leave the remaining pins unmuxed. This is useful if
75 the board connects certain pins in a group to other devices to be controlled
76 by GPIO, and you don't want the usual peripheral to have any control of the
77 pin.
78
79 ant_sel0, ant_sel1, gain0, gain1, gain2, gain3, gain4, gain5, gain6, gain7,
80 i2s_bclk_out, i2s_din, i2s_dout0, i2s_dout1, i2s_dout2, i2s_lrclk_out,
81 i2s_mclk, pa_on, pdm_a, pdm_b, pdm_c, pdm_d, pll_on, rx_hp, rx_on,
82 scb0_sclk, scb0_sdat, scb1_sclk, scb1_sdat, scb2_sclk, scb2_sdat, sdh_cd,
83 sdh_clk_in, sdh_wp, sdio_clk, sdio_cmd, sdio_d0, sdio_d1, sdio_d2, sdio_d3,
84 spi0_cs0, spi0_cs1, spi0_cs2, spi0_din, spi0_dout, spi0_mclk, spi1_cs0,
85 spi1_cs1, spi1_cs2, spi1_din, spi1_dout, spi1_mclk, tft_blank_ls, tft_blue0,
86 tft_blue1, tft_blue2, tft_blue3, tft_blue4, tft_blue5, tft_blue6, tft_blue7,
87 tft_green0, tft_green1, tft_green2, tft_green3, tft_green4, tft_green5,
88 tft_green6, tft_green7, tft_hsync_nr, tft_panelclk, tft_pwrsave, tft_red0,
89 tft_red1, tft_red2, tft_red3, tft_red4, tft_red5, tft_red6, tft_red7,
90 tft_vd12acb, tft_vdden_gd, tft_vsync_ns, tx_on, uart0_cts, uart0_rts,
91 uart0_rxd, uart0_txd, uart1_rxd, uart1_txd.
92
93 bias-high-impediance: supported.
94 bias-pull-up: supported.
95 bias-pull-down: supported.
96 bias-bus-hold: supported.
97 function: perip or those supported by pin's mux group.
98
99 other pins:
100
101 These other pins are part of various pin groups below, but can't be
102 controlled as GPIOs. They do however support bias-high-impediance,
103 bias-pull-up, bias-pull-down, and bias-bus-hold (which can also be provided
104 to any of the groups below to set it for all pins in that group).
105
106 clk_out0, clk_out1, tck, tdi, tdo, tms, trst.
107
108 bias-high-impediance: supported.
109 bias-pull-up: supported.
110 bias-pull-down: supported.
111 bias-bus-hold: supported.
112
113 mux groups:
114
115 These all support function, and some support drive configs.
116
117 afe
118 pins: tx_on, rx_on, pll_on, pa_on, rx_hp, ant_sel0,
119 ant_sel1, gain0, gain1, gain2, gain3, gain4,
120 gain5, gain6, gain7.
121 function: afe, ts_out_0.
122 input-schmitt-enable: supported.
123 input-schmitt-disable: supported.
124 drive-strength: supported.
125 pdm_d
126 pins: pdm_d.
127 function: pdm_dac, usb_vbus.
128 sdh
129 pins: sdh_cd, sdh_wp, sdh_clk_in.
130 function: sdh, sdio.
131 sdio
132 pins: sdio_clk, sdio_cmd, sdio_d0, sdio_d1, sdio_d2,
133 sdio_d3.
134 function: sdio, sdh.
135 spi1_cs2
136 pins: spi1_cs2.
137 function: spi1_cs2, usb_vbus.
138 tft
139 pins: tft_red0, tft_red1, tft_red2, tft_red3,
140 tft_red4, tft_red5, tft_red6, tft_red7,
141 tft_green0, tft_green1, tft_green2, tft_green3,
142 tft_green4, tft_green5, tft_green6, tft_green7,
143 tft_blue0, tft_blue1, tft_blue2, tft_blue3,
144 tft_blue4, tft_blue5, tft_blue6, tft_blue7,
145 tft_vdden_gd, tft_panelclk, tft_blank_ls,
146 tft_vsync_ns, tft_hsync_nr, tft_vd12acb,
147 tft_pwrsave.
148 function: tft, ext_dac, not_iqadc_stb, iqdac_stb, ts_out_1,
149 lcd_trace, phy_ringosc.
150 input-schmitt-enable: supported.
151 input-schmitt-disable: supported.
152 drive-strength: supported.
153
154 drive groups:
155
156 These all support input-schmitt-enable, input-schmitt-disable,
157 and drive-strength.
158
159 jtag
160 pins: tck, trst, tdi, tdo, tms.
161 scb1
162 pins: scb1_sdat, scb1_sclk.
163 scb2
164 pins: scb2_sdat, scb2_sclk.
165 spi0
166 pins: spi0_mclk, spi0_cs0, spi0_cs1, spi0_cs2, spi0_dout, spi0_din.
167 spi1
168 pins: spi1_mclk, spi1_cs0, spi1_cs1, spi1_cs2, spi1_dout, spi1_din.
169 uart
170 pins: uart0_txd, uart0_rxd, uart0_rts, uart0_cts,
171 uart1_txd, uart1_rxd.
172 drive_i2s
173 pins: clk_out1, i2s_din, i2s_dout0, i2s_dout1, i2s_dout2,
174 i2s_lrclk_out, i2s_bclk_out, i2s_mclk.
175 drive_pdm
176 pins: clk_out0, pdm_b, pdm_a.
177 drive_scb0
178 pins: scb0_sclk, scb0_sdat, pdm_d, pdm_c.
179 drive_sdio
180 pins: sdio_clk, sdio_cmd, sdio_d0, sdio_d1, sdio_d2, sdio_d3,
181 sdh_wp, sdh_cd, sdh_clk_in.
182
183 convenience groups:
184
185 These are just convenient groupings of pins and don't support any drive
186 configs.
187
188 uart0
189 pins: uart0_cts, uart0_rts, uart0_rxd, uart0_txd.
190 uart1
191 pins: uart1_rxd, uart1_txd.
192 scb0
193 pins: scb0_sclk, scb0_sdat.
194 i2s
195 pins: i2s_bclk_out, i2s_din, i2s_dout0, i2s_dout1, i2s_dout2,
196 i2s_lrclk_out, i2s_mclk.
197
198Example:
199
200 pinctrl: pinctrl@02005800 {
201 #gpio-range-cells = <3>;
202 compatible = "img,tz1090-pinctrl";
203 reg = <0x02005800 0xe4>;
204 };
205
206Example board file extract:
207
208 &pinctrl {
209 uart0_default: uart0 {
210 uart0_cfg {
211 tz1090,pins = "uart0_rxd",
212 "uart0_txd";
213 tz1090,function = "perip";
214 };
215 };
216 tft_default: tft {
217 tft_cfg {
218 tz1090,pins = "tft";
219 tz1090,function = "tft";
220 };
221 };
222 };
223
224 uart@02004b00 {
225 pinctrl-names = "default";
226 pinctrl-0 = <&uart0_default>;
227 };
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt
index a648aaad6110..50ec3512a292 100644
--- a/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt
@@ -10,29 +10,31 @@ Required properties:
10Available mpp pins/groups and functions: 10Available mpp pins/groups and functions:
11Note: brackets (x) are not part of the mpp name for marvell,function and given 11Note: brackets (x) are not part of the mpp name for marvell,function and given
12only for more detailed description in this document. 12only for more detailed description in this document.
13Note: pmu* also allows for Power Management functions listed below
13 14
14name pins functions 15name pins functions
15================================================================================ 16================================================================================
16mpp0 0 gpio, pmu, uart2(rts), sdio0(cd), lcd0(pwm) 17mpp0 0 gpio, pmu, uart2(rts), sdio0(cd), lcd0(pwm), pmu*
17mpp1 1 gpio, pmu, uart2(cts), sdio0(wp), lcd1(pwm) 18mpp1 1 gpio, pmu, uart2(cts), sdio0(wp), lcd1(pwm), pmu*
18mpp2 2 gpio, pmu, uart2(txd), sdio0(buspwr), sata(prsnt), 19mpp2 2 gpio, pmu, uart2(txd), sdio0(buspwr), sata(prsnt),
19 uart1(rts) 20 uart1(rts), pmu*
20mpp3 3 gpio, pmu, uart2(rxd), sdio0(ledctrl), sata(act), 21mpp3 3 gpio, pmu, uart2(rxd), sdio0(ledctrl), sata(act),
21 uart1(cts), lcd-spi(cs1) 22 uart1(cts), lcd-spi(cs1), pmu*
22mpp4 4 gpio, pmu, uart3(rts), sdio1(cd), spi1(miso) 23mpp4 4 gpio, pmu, uart3(rts), sdio1(cd), spi1(miso), pmu*
23mpp5 5 gpio, pmu, uart3(cts), sdio1(wp), spi1(cs) 24mpp5 5 gpio, pmu, uart3(cts), sdio1(wp), spi1(cs), pmu*
24mpp6 6 gpio, pmu, uart3(txd), sdio1(buspwr), spi1(mosi) 25mpp6 6 gpio, pmu, uart3(txd), sdio1(buspwr), spi1(mosi), pmu*
25mpp7 7 gpio, pmu, uart3(rxd), sdio1(ledctrl), spi1(sck) 26mpp7 7 gpio, pmu, uart3(rxd), sdio1(ledctrl), spi1(sck), pmu*
26mpp8 8 gpio, pmu, watchdog(rstout) 27mpp8 8 gpio, pmu, watchdog(rstout), pmu*
27mpp9 9 gpio, pmu, pex1(clkreq) 28mpp9 9 gpio, pmu, pex1(clkreq), pmu*
28mpp10 10 gpio, pmu, ssp(sclk) 29mpp10 10 gpio, pmu, ssp(sclk), pmu*
29mpp11 11 gpio, pmu, sata(prsnt), sata-1(act), sdio0(ledctrl), 30mpp11 11 gpio, pmu, sata(prsnt), sata-1(act), sdio0(ledctrl),
30 sdio1(ledctrl), pex0(clkreq) 31 sdio1(ledctrl), pex0(clkreq), pmu*
31mpp12 12 gpio, pmu, uart2(rts), audio0(extclk), sdio1(cd), sata(act) 32mpp12 12 gpio, pmu, uart2(rts), audio0(extclk), sdio1(cd),
33 sata(act), pmu*
32mpp13 13 gpio, pmu, uart2(cts), audio1(extclk), sdio1(wp), 34mpp13 13 gpio, pmu, uart2(cts), audio1(extclk), sdio1(wp),
33 ssp(extclk) 35 ssp(extclk), pmu*
34mpp14 14 gpio, pmu, uart2(txd), sdio1(buspwr), ssp(rxd) 36mpp14 14 gpio, pmu, uart2(txd), sdio1(buspwr), ssp(rxd), pmu*
35mpp15 15 gpio, pmu, uart2(rxd), sdio1(ledctrl), ssp(sfrm) 37mpp15 15 gpio, pmu, uart2(rxd), sdio1(ledctrl), ssp(sfrm), pmu*
36mpp16 16 gpio, uart3(rts), sdio0(cd), ac97(sdi1), lcd-spi(cs1) 38mpp16 16 gpio, uart3(rts), sdio0(cd), ac97(sdi1), lcd-spi(cs1)
37mpp17 17 gpio, uart3(cts), sdio0(wp), ac97(sdi2), twsi(sda), 39mpp17 17 gpio, uart3(cts), sdio0(wp), ac97(sdi2), twsi(sda),
38 ac97-1(sysclko) 40 ac97-1(sysclko)
@@ -57,6 +59,21 @@ mpp_nand 64-71 gpo, nand
57audio0 - i2s, ac97 59audio0 - i2s, ac97
58twsi - none, opt1, opt2, opt3 60twsi - none, opt1, opt2, opt3
59 61
62Power Management functions (pmu*):
63pmu-nc Pin not driven by any PM function
64pmu-low Pin driven low (0)
65pmu-high Pin driven high (1)
66pmic(sdi) Pin is used for PMIC SDI
67cpu-pwr-down Pin is used for CPU_PWRDWN
68standby-pwr-down Pin is used for STBY_PWRDWN
69core-pwr-good Pin is used for CORE_PWR_GOOD (Pins 0-7 only)
70cpu-pwr-good Pin is used for CPU_PWR_GOOD (Pins 8-15 only)
71bat-fault Pin is used for BATTERY_FAULT
72ext0-wakeup Pin is used for EXT0_WU
73ext1-wakeup Pin is used for EXT0_WU
74ext2-wakeup Pin is used for EXT0_WU
75pmu-blink Pin is used for blink function
76
60Notes: 77Notes:
61* group "mpp_audio1" allows the following functions and gpio pins: 78* group "mpp_audio1" allows the following functions and gpio pins:
62 - gpio : gpio on pins 52-57 79 - gpio : gpio on pins 52-57
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
index c95ea8278f87..aeb3c995cc04 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
@@ -126,3 +126,51 @@ device; they may be grandchildren, for example. Whether this is legal, and
126whether there is any interaction between the child and intermediate parent 126whether there is any interaction between the child and intermediate parent
127nodes, is again defined entirely by the binding for the individual pin 127nodes, is again defined entirely by the binding for the individual pin
128controller device. 128controller device.
129
130== Using generic pinconfig options ==
131
132Generic pinconfig parameters can be used by defining a separate node containing
133the applicable parameters (and optional values), like:
134
135pcfg_pull_up: pcfg_pull_up {
136 bias-pull-up;
137 drive-strength = <20>;
138};
139
140This node should then be referenced in the appropriate pinctrl node as a phandle
141and parsed in the driver using the pinconf_generic_parse_dt_config function.
142
143Supported configuration parameters are:
144
145bias-disable - disable any pin bias
146bias-high-impedance - high impedance mode ("third-state", "floating")
147bias-bus-hold - latch weakly
148bias-pull-up - pull up the pin
149bias-pull-down - pull down the pin
150bias-pull-pin-default - use pin-default pull state
151drive-push-pull - drive actively high and low
152drive-open-drain - drive with open drain
153drive-open-source - drive with open source
154drive-strength - sink or source at most X mA
155input-schmitt-enable - enable schmitt-trigger mode
156input-schmitt-disable - disable schmitt-trigger mode
157input-debounce - debounce mode with debound time X
158low-power-enable - enable low power mode
159low-power-disable - disable low power mode
160output-low - set the pin to output mode with low level
161output-high - set the pin to output mode with high level
162
163Arguments for parameters:
164
165- bias-pull-up, -down and -pin-default take as optional argument on hardware
166 supporting it the pull strength in Ohm. bias-disable will disable the pull.
167
168- drive-strength takes as argument the target strength in mA.
169
170- input-debounce takes the debounce time in usec as argument
171 or 0 to disable debouncing
172
173All parameters not listed here, do not take an argument.
174
175More in-depth documentation on these parameters can be found in
176<include/linux/pinctrl/pinconfig-generic.h>
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
index 08f0c3d01575..5a02e30dd262 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
@@ -18,7 +18,8 @@ Optional properties:
18 pin functions is ignored 18 pin functions is ignored
19 19
20- pinctrl-single,bit-per-mux : boolean to indicate that one register controls 20- pinctrl-single,bit-per-mux : boolean to indicate that one register controls
21 more than one pin 21 more than one pin, for which "pinctrl-single,function-mask" property specifies
22 position mask of pin.
22 23
23- pinctrl-single,drive-strength : array of value that are used to configure 24- pinctrl-single,drive-strength : array of value that are used to configure
24 drive strength in the pinmux register. They're value of drive strength 25 drive strength in the pinmux register. They're value of drive strength
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt
new file mode 100644
index 000000000000..05bf82a07dfd
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt
@@ -0,0 +1,110 @@
1*ST pin controller.
2
3Each multi-function pin is controlled, driven and routed through the
4PIO multiplexing block. Each pin supports GPIO functionality (ALT0)
5and multiple alternate functions(ALT1 - ALTx) that directly connect
6the pin to different hardware blocks.
7
8When a pin is in GPIO mode, Output Enable (OE), Open Drain(OD), and
9Pull Up (PU) are driven by the related PIO block.
10
11ST pinctrl driver controls PIO multiplexing block and also interacts with
12gpio driver to configure a pin.
13
14Required properties: (PIO multiplexing block)
15- compatible : should be "st,<SOC>-<pio-block>-pinctrl"
16 like st,stih415-sbc-pinctrl, st,stih415-front-pinctrl and so on.
17- gpio-controller : Indicates this device is a GPIO controller
18- #gpio-cells : Should be one. The first cell is the pin number.
19- st,retime-pin-mask : Should be mask to specify which pins can be retimed.
20 If the property is not present, it is assumed that all the pins in the
21 bank are capable of retiming. Retiming is mainly used to improve the
22 IO timing margins of external synchronous interfaces.
23- st,bank-name : Should be a name string for this bank as
24 specified in datasheet.
25- st,syscfg : Should be a phandle of the syscfg node.
26
27Example:
28 pin-controller-sbc {
29 #address-cells = <1>;
30 #size-cells = <1>;
31 compatible = "st,stih415-sbc-pinctrl";
32 st,syscfg = <&syscfg_sbc>;
33 ranges = <0 0xfe610000 0x5000>;
34 PIO0: gpio@fe610000 {
35 gpio-controller;
36 #gpio-cells = <1>;
37 reg = <0 0x100>;
38 st,bank-name = "PIO0";
39 };
40 ...
41 pin-functions nodes follow...
42 };
43
44
45Contents of function subnode node:
46----------------------
47Required properties for pin configuration node:
48- st,pins : Child node with list of pins with configuration.
49
50Below is the format of how each pin conf should look like.
51
52<bank offset mux mode rt_type rt_delay rt_clk>
53
54Every PIO is represented with 4-7 parameters depending on retime configuration.
55Each parameter is explained as below.
56
57-bank : Should be bank phandle to which this PIO belongs.
58-offset : Offset in the PIO bank.
59-mux : Should be alternate function number associated this pin.
60 Use same numbers from datasheet.
61-mode :pin configuration is selected from one of the below values.
62 IN
63 IN_PU
64 OUT
65 BIDIR
66 BIDIR_PU
67
68-rt_type Retiming Configuration for the pin.
69 Possible retime configuration are:
70
71 ------- -------------
72 value args
73 ------- -------------
74 NICLK <delay> <clk>
75 ICLK_IO <delay> <clk>
76 BYPASS <delay>
77 DE_IO <delay> <clk>
78 SE_ICLK_IO <delay> <clk>
79 SE_NICLK_IO <delay> <clk>
80
81- delay is retime delay in pico seconds as mentioned in data sheet.
82
83- rt_clk :clk to be use for retime.
84 Possible values are:
85 CLK_A
86 CLK_B
87 CLK_C
88 CLK_D
89
90Example of mmcclk pin which is a bi-direction pull pu with retime config
91as non inverted clock retimed with CLK_B and delay of 0 pico seconds:
92
93pin-controller {
94 ...
95 mmc0 {
96 pinctrl_mmc: mmc {
97 st,pins {
98 mmcclk = <&PIO13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
99 ...
100 };
101 };
102 ...
103 };
104};
105
106sdhci0:sdhci@fe810000{
107 ...
108 pinctrl-names = "default";
109 pinctrl-0 = <&pinctrl_mmc>;
110};
diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt
new file mode 100644
index 000000000000..d5dac7b843a9
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt
@@ -0,0 +1,153 @@
1* Renesas Pin Function Controller (GPIO and Pin Mux/Config)
2
3The Pin Function Controller (PFC) is a Pin Mux/Config controller. On SH7372,
4SH73A0, R8A73A4 and R8A7740 it also acts as a GPIO controller.
5
6
7Pin Control
8-----------
9
10Required Properties:
11
12 - compatible: should be one of the following.
13 - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller.
14 - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller.
15 - "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller.
16 - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller.
17 - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller.
18 - "renesas,pfc-sh7372": for SH7372 (SH-Mobile AP4) compatible pin-controller.
19 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible pin-controller.
20
21 - reg: Base address and length of each memory resource used by the pin
22 controller hardware module.
23
24Optional properties:
25
26 - #gpio-range-cells: Mandatory when the PFC doesn't handle GPIO, forbidden
27 otherwise. Should be 3.
28
29The PFC node also acts as a container for pin configuration nodes. Please refer
30to pinctrl-bindings.txt in this directory for the definition of the term "pin
31configuration node" and for the common pinctrl bindings used by client devices.
32
33Each pin configuration node represents a desired configuration for a pin, a
34pin group, or a list of pins or pin groups. The configuration can include the
35function to select on those pin(s) and pin configuration parameters (such as
36pull-up and pull-down).
37
38Pin configuration nodes contain pin configuration properties, either directly
39or grouped in child subnodes. Both pin muxing and configuration parameters can
40be grouped in that way and referenced as a single pin configuration node by
41client devices.
42
43A configuration node or subnode must reference at least one pin (through the
44pins or pin groups properties) and contain at least a function or one
45configuration parameter. When the function is present only pin groups can be
46used to reference pins.
47
48All pin configuration nodes and subnodes names are ignored. All of those nodes
49are parsed through phandles and processed purely based on their content.
50
51Pin Configuration Node Properties:
52
53- renesas,pins : An array of strings, each string containing the name of a pin.
54- renesas,groups : An array of strings, each string containing the name of a pin
55 group.
56
57- renesas,function: A string containing the name of the function to mux to the
58 pin group(s) specified by the renesas,groups property
59
60 Valid values for pin, group and function names can be found in the group and
61 function arrays of the PFC data file corresponding to the SoC
62 (drivers/pinctrl/sh-pfc/pfc-*.c)
63
64The pin configuration parameters use the generic pinconf bindings defined in
65pinctrl-bindings.txt in this directory. The supported parameters are
66bias-disable, bias-pull-up and bias-pull-down.
67
68
69GPIO
70----
71
72On SH7372, SH73A0, R8A73A4 and R8A7740 the PFC node is also a GPIO controller
73node.
74
75Required Properties:
76
77 - gpio-controller: Marks the device node as a gpio controller.
78
79 - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
80 cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
81 GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
82
83The syntax of the gpio specifier used by client nodes should be the following
84with values derived from the SoC user manual.
85
86 <[phandle of the gpio controller node]
87 [pin number within the gpio controller]
88 [flags]>
89
90On other mach-shmobile platforms GPIO is handled by the gpio-rcar driver.
91Please refer to Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
92for documentation of the GPIO device tree bindings on those platforms.
93
94
95Examples
96--------
97
98Example 1: SH73A0 (SH-Mobile AG5) pin controller node
99
100 pfc: pfc@e6050000 {
101 compatible = "renesas,pfc-sh73a0";
102 reg = <0xe6050000 0x8000>,
103 <0xe605801c 0x1c>;
104 gpio-controller;
105 #gpio-cells = <2>;
106 };
107
108Example 2: A GPIO LED node that references a GPIO
109
110 #include <dt-bindings/gpio/gpio.h>
111
112 leds {
113 compatible = "gpio-leds";
114 led1 {
115 gpios = <&pfc 20 GPIO_ACTIVE_LOW>;
116 };
117 };
118
119Example 3: KZM-A9-GT (SH-Mobile AG5) default pin state hog and pin control maps
120 for the MMCIF and SCIFA4 devices
121
122 &pfc {
123 pinctrl-0 = <&scifa4_pins>;
124 pinctrl-names = "default";
125
126 mmcif_pins: mmcif {
127 mux {
128 renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0";
129 renesas,function = "mmc0";
130 };
131 cfg {
132 renesas,groups = "mmc0_data8_0";
133 renesas,pins = "PORT279";
134 bias-pull-up;
135 };
136 };
137
138 scifa4_pins: scifa4 {
139 renesas,groups = "scifa4_data", "scifa4_ctrl";
140 renesas,function = "scifa4";
141 };
142 };
143
144Example 4: KZM-A9-GT (SH-Mobile AG5) default pin state for the MMCIF device
145
146 &mmcif {
147 pinctrl-0 = <&mmcif_pins>;
148 pinctrl-names = "default";
149
150 bus-width = <8>;
151 vmmc-supply = <&reg_1p8v>;
152 status = "okay";
153 };
diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
new file mode 100644
index 000000000000..b0fb1018d7ad
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
@@ -0,0 +1,97 @@
1* Rockchip Pinmux Controller
2
3The Rockchip Pinmux Controller, enables the IC
4to share one PAD to several functional blocks. The sharing is done by
5multiplexing the PAD input/output signals. For each PAD there are up to
64 muxing options with option 0 being the use as a GPIO.
7
8Please refer to pinctrl-bindings.txt in this directory for details of the
9common pinctrl bindings used by client devices, including the meaning of the
10phrase "pin configuration node".
11
12The Rockchip pin configuration node is a node of a group of pins which can be
13used for a specific device or function. This node represents both mux and
14config of the pins in that group. The 'pins' selects the function mode(also
15named pin mode) this pin can work on and the 'config' configures various pad
16settings such as pull-up, etc.
17
18The pins are grouped into up to 5 individual pin banks which need to be
19defined as gpio sub-nodes of the pinmux controller.
20
21Required properties for iomux controller:
22 - compatible: one of "rockchip,rk2928-pinctrl", "rockchip,rk3066a-pinctrl"
23 "rockchip,rk3066b-pinctrl", "rockchip,rk3188-pinctrl"
24
25Required properties for gpio sub nodes:
26 - compatible: "rockchip,gpio-bank"
27 - reg: register of the gpio bank (different than the iomux registerset)
28 - interrupts: base interrupt of the gpio bank in the interrupt controller
29 - clocks: clock that drives this bank
30 - gpio-controller: identifies the node as a gpio controller and pin bank.
31 - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO
32 binding is used, the amount of cells must be specified as 2. See generic
33 GPIO binding documentation for description of particular cells.
34 - interrupt-controller: identifies the controller node as interrupt-parent.
35 - #interrupt-cells: the value of this property should be 2 and the interrupt
36 cells should use the standard two-cell scheme described in
37 bindings/interrupt-controller/interrupts.txt
38
39Required properties for pin configuration node:
40 - rockchip,pins: 3 integers array, represents a group of pins mux and config
41 setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>.
42 The MUX 0 means gpio and MUX 1 to 3 mean the specific device function.
43 The phandle of a node containing the generic pinconfig options
44 to use, as described in pinctrl-bindings.txt in this directory.
45
46Examples:
47
48#include <dt-bindings/pinctrl/rockchip.h>
49
50...
51
52pinctrl@20008000 {
53 compatible = "rockchip,rk3066a-pinctrl";
54 reg = <0x20008000 0x150>;
55 #address-cells = <1>;
56 #size-cells = <1>;
57 ranges;
58
59 gpio0: gpio0@20034000 {
60 compatible = "rockchip,gpio-bank";
61 reg = <0x20034000 0x100>;
62 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
63 clocks = <&clk_gates8 9>;
64
65 gpio-controller;
66 #gpio-cells = <2>;
67
68 interrupt-controller;
69 #interrupt-cells = <2>;
70 };
71
72 ...
73
74 pcfg_pull_default: pcfg_pull_default {
75 bias-pull-pin-default
76 };
77
78 uart2 {
79 uart2_xfer: uart2-xfer {
80 rockchip,pins = <RK_GPIO1 8 1 &pcfg_pull_default>,
81 <RK_GPIO1 9 1 &pcfg_pull_default>;
82 };
83 };
84};
85
86uart2: serial@20064000 {
87 compatible = "snps,dw-apb-uart";
88 reg = <0x20064000 0x400>;
89 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
90 reg-shift = <2>;
91 reg-io-width = <1>;
92 clocks = <&mux_uart2>;
93 status = "okay";
94
95 pinctrl-names = "default";
96 pinctrl-0 = <&uart2_xfer>;
97};
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
index c70fca146e91..36281e7a2a46 100644
--- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
@@ -7,10 +7,15 @@ on-chip controllers onto these pads.
7 7
8Required Properties: 8Required Properties:
9- compatible: should be one of the following. 9- compatible: should be one of the following.
10 - "samsung,s3c2412-pinctrl": for S3C2412-compatible pin-controller,
11 - "samsung,s3c2416-pinctrl": for S3C2416-compatible pin-controller,
12 - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller,
13 - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller,
10 - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, 14 - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller,
11 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. 15 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller.
12 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. 16 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller.
13 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. 17 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller.
18 - "samsung,exynos5420-pinctrl": for Exynos5420 compatible pin-controller.
14 19
15- reg: Base address of the pin controller hardware module and length of 20- reg: Base address of the pin controller hardware module and length of
16 the address space it occupies. 21 the address space it occupies.
@@ -21,8 +26,18 @@ Required Properties:
21 26
22 - gpio-controller: identifies the node as a gpio controller and pin bank. 27 - gpio-controller: identifies the node as a gpio controller and pin bank.
23 - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO 28 - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO
24 binding is used, the amount of cells must be specified as 2. See generic 29 binding is used, the amount of cells must be specified as 2. See the below
25 GPIO binding documentation for description of particular cells. 30 mentioned gpio binding representation for description of particular cells.
31
32 Eg: <&gpx2 6 0>
33 <[phandle of the gpio controller node]
34 [pin number within the gpio controller]
35 [flags]>
36
37 Values for gpio specifier:
38 - Pin number: is a value between 0 to 7.
39 - Flags: 0 - Active High
40 1 - Active Low
26 41
27- Pin mux/config groups as child nodes: The pin mux (selecting pin function 42- Pin mux/config groups as child nodes: The pin mux (selecting pin function
28 mode) and pin config (pull up/down, driver strength) settings are represented 43 mode) and pin config (pull up/down, driver strength) settings are represented
@@ -106,6 +121,10 @@ B. External Wakeup Interrupts: For supporting external wakeup interrupts, a
106 121
107 - compatible: identifies the type of the external wakeup interrupt controller 122 - compatible: identifies the type of the external wakeup interrupt controller
108 The possible values are: 123 The possible values are:
124 - samsung,s3c2410-wakeup-eint: represents wakeup interrupt controller
125 found on Samsung S3C24xx SoCs except S3C2412 and S3C2413,
126 - samsung,s3c2412-wakeup-eint: represents wakeup interrupt controller
127 found on Samsung S3C2412 and S3C2413 SoCs,
109 - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller 128 - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller
110 found on Samsung S3C64xx SoCs, 129 found on Samsung S3C64xx SoCs,
111 - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller 130 - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller
@@ -266,3 +285,33 @@ Example 4: Set up the default pin state for uart controller.
266 285
267 pinctrl = devm_pinctrl_get_select_default(&pdev->dev); 286 pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
268 } 287 }
288
289Example 5: A display port client node that supports 'default' pinctrl state
290 and gpio binding.
291
292 display-port-controller {
293 /* ... */
294
295 samsung,hpd-gpio = <&gpx2 6 0>;
296 pinctrl-names = "default";
297 pinctrl-0 = <&dp_hpd>;
298 };
299
300Example 6: Request the gpio for display port controller
301
302 static int exynos_dp_probe(struct platform_device *pdev)
303 {
304 int hpd_gpio, ret;
305 struct device *dev = &pdev->dev;
306 struct device_node *dp_node = dev->of_node;
307
308 /* ... */
309
310 hpd_gpio = of_get_named_gpio(dp_node, "samsung,hpd-gpio", 0);
311
312 /* ... */
313
314 ret = devm_gpio_request_one(&pdev->dev, hpd_gpio, GPIOF_IN,
315 "hpd_gpio");
316 /* ... */
317 }
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,abx500.txt b/Documentation/devicetree/bindings/pinctrl/ste,abx500.txt
new file mode 100644
index 000000000000..e3865e136067
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/ste,abx500.txt
@@ -0,0 +1,352 @@
1ST Ericsson abx500 pinmux controller
2
3Required properties:
4- compatible: "stericsson,ab8500-gpio", "stericsson,ab8540-gpio",
5 "stericsson,ab8505-gpio", "stericsson,ab9540-gpio",
6
7Please refer to pinctrl-bindings.txt in this directory for details of the
8common pinctrl bindings used by client devices, including the meaning of the
9phrase "pin configuration node".
10
11ST Ericsson's pin configuration nodes act as a container for an arbitrary number of
12subnodes. Each of these subnodes represents some desired configuration for a
13pin, a group, or a list of pins or groups. This configuration can include the
14mux function to select on those pin(s)/group(s), and various pin configuration
15parameters, such as input, output, pull up, pull down...
16
17The name of each subnode is not important; all subnodes should be enumerated
18and processed purely based on their content.
19
20Required subnode-properties:
21- ste,pins : An array of strings. Each string contains the name of a pin or
22 group.
23
24Optional subnode-properties:
25- ste,function: A string containing the name of the function to mux to the
26 pin or group.
27
28- generic pin configuration option to use. Example :
29
30 default_cfg {
31 ste,pins = "GPIO1";
32 bias-disable;
33 };
34
35- ste,config: Handle of pin configuration node containing the generic
36 pinconfig options to use, as described in pinctrl-bindings.txt in
37 this directory. Example :
38
39 pcfg_bias_disable: pcfg_bias_disable {
40 bias-disable;
41 };
42
43 default_cfg {
44 ste,pins = "GPIO1";
45 ste.config = <&pcfg_bias_disable>;
46 };
47
48Example board file extract:
49
50&pinctrl_abx500 {
51 pinctrl-names = "default";
52 pinctrl-0 = <&sysclkreq2_default_mode>, <&sysclkreq3_default_mode>, <&gpio3_default_mode>, <&sysclkreq6_default_mode>, <&pwmout1_default_mode>, <&pwmout2_default_mode>, <&pwmout3_default_mode>, <&adi1_default_mode>, <&dmic12_default_mode>, <&dmic34_default_mode>, <&dmic56_default_mode>, <&sysclkreq5_default_mode>, <&batremn_default_mode>, <&service_default_mode>, <&pwrctrl0_default_mode>, <&pwrctrl1_default_mode>, <&pwmextvibra1_default_mode>, <&pwmextvibra2_default_mode>, <&gpio51_default_mode>, <&gpio52_default_mode>, <&gpio53_default_mode>, <&gpio54_default_mode>, <&pdmclkdat_default_mode>;
53
54 sysclkreq2 {
55 sysclkreq2_default_mode: sysclkreq2_default {
56 default_mux {
57 ste,function = "sysclkreq";
58 ste,pins = "sysclkreq2_d_1";
59 };
60 default_cfg {
61 ste,pins = "GPIO1";
62 bias-disable;
63 };
64 };
65 };
66 sysclkreq3 {
67 sysclkreq3_default_mode: sysclkreq3_default {
68 default_mux {
69 ste,function = "sysclkreq";
70 ste,pins = "sysclkreq3_d_1";
71 };
72 default_cfg {
73 ste,pins = "GPIO2";
74 output-low;
75 };
76 };
77 };
78 gpio3 {
79 gpio3_default_mode: gpio3_default {
80 default_mux {
81 ste,function = "gpio";
82 ste,pins = "gpio3_a_1";
83 };
84 default_cfg {
85 ste,pins = "GPIO3";
86 output-low;
87 };
88 };
89 };
90 sysclkreq6 {
91 sysclkreq6_default_mode: sysclkreq6_default {
92 default_mux {
93 ste,function = "sysclkreq";
94 ste,pins = "sysclkreq6_d_1";
95 };
96 default_cfg {
97 ste,pins = "GPIO4";
98 bias-disable;
99 };
100 };
101 };
102 pwmout1 {
103 pwmout1_default_mode: pwmout1_default {
104 default_mux {
105 ste,function = "pwmout";
106 ste,pins = "pwmout1_d_1";
107 };
108 default_cfg {
109 ste,pins = "GPIO14";
110 output-low;
111 };
112 };
113 };
114 pwmout2 {
115 pwmout2_default_mode: pwmout2_default {
116 pwmout2_default_mux {
117 ste,function = "pwmout";
118 ste,pins = "pwmout2_d_1";
119 };
120 pwmout2_default_cfg {
121 ste,pins = "GPIO15";
122 output-low;
123 };
124 };
125 };
126 pwmout3 {
127 pwmout3_default_mode: pwmout3_default {
128 pwmout3_default_mux {
129 ste,function = "pwmout";
130 ste,pins = "pwmout3_d_1";
131 };
132 pwmout3_default_cfg {
133 ste,pins = "GPIO16";
134 output-low;
135 };
136 };
137 };
138 adi1 {
139
140 adi1_default_mode: adi1_default {
141 adi1_default_mux {
142 ste,function = "adi1";
143 ste,pins = "adi1_d_1";
144 };
145 adi1_default_cfg1 {
146 ste,pins = "GPIO17","GPIO19","GPIO20";
147 bias-disable;
148 };
149 adi1_default_cfg2 {
150 ste,pins = "GPIO18";
151 output-low;
152 };
153 };
154 };
155 dmic12 {
156 dmic12_default_mode: dmic12_default {
157 dmic12_default_mux {
158 ste,function = "dmic";
159 ste,pins = "dmic12_d_1";
160 };
161 dmic12_default_cfg1 {
162 ste,pins = "GPIO27";
163 output-low;
164 };
165 dmic12_default_cfg2 {
166 ste,pins = "GPIO28";
167 bias-disable;
168 };
169 };
170 };
171 dmic34 {
172 dmic34_default_mode: dmic34_default {
173 dmic34_default_mux {
174 ste,function = "dmic";
175 ste,pins = "dmic34_d_1";
176 };
177 dmic34_default_cfg1 {
178 ste,pins = "GPIO29";
179 output-low;
180 };
181 dmic34_default_cfg2 {
182 ste,pins = "GPIO30";
183 bias-disable;{
184
185 };
186 };
187 };
188 dmic56 {
189 dmic56_default_mode: dmic56_default {
190 dmic56_default_mux {
191 ste,function = "dmic";
192 ste,pins = "dmic56_d_1";
193 };
194 dmic56_default_cfg1 {
195 ste,pins = "GPIO31";
196 output-low;
197 };
198 dmic56_default_cfg2 {
199 ste,pins = "GPIO32";
200 bias-disable;
201 };
202 };
203 };
204 sysclkreq5 {
205 sysclkreq5_default_mode: sysclkreq5_default {
206 sysclkreq5_default_mux {
207 ste,function = "sysclkreq";
208 ste,pins = "sysclkreq5_d_1";
209 };
210 sysclkreq5_default_cfg {
211 ste,pins = "GPIO42";
212 output-low;
213 };
214 };
215 };
216 batremn {
217 batremn_default_mode: batremn_default {
218 batremn_default_mux {
219 ste,function = "batremn";
220 ste,pins = "batremn_d_1";
221 };
222 batremn_default_cfg {
223 ste,pins = "GPIO43";
224 bias-disable;
225 };
226 };
227 };
228 service {
229 service_default_mode: service_default {
230 service_default_mux {
231 ste,function = "service";
232 ste,pins = "service_d_1";
233 };
234 service_default_cfg {
235 ste,pins = "GPIO44";
236 bias-disable;
237 };
238 };
239 };
240 pwrctrl0 {
241 pwrctrl0_default_mux: pwrctrl0_mux {
242 pwrctrl0_default_mux {
243 ste,function = "pwrctrl";
244 ste,pins = "pwrctrl0_d_1";
245 };
246 };
247 pwrctrl0_default_mode: pwrctrl0_default {
248 pwrctrl0_default_cfg {
249 ste,pins = "GPIO45";
250 bias-disable;
251 };
252 };
253 };
254 pwrctrl1 {
255 pwrctrl1_default_mux: pwrctrl1_mux {
256 pwrctrl1_default_mux {
257 ste,function = "pwrctrl";
258 ste,pins = "pwrctrl1_d_1";
259 };
260 };
261 pwrctrl1_default_mode: pwrctrl1_default {
262 pwrctrl1_default_cfg {
263 ste,pins = "GPIO46";
264 bias-disable;
265 };
266 };
267 };
268 pwmextvibra1 {
269 pwmextvibra1_default_mode: pwmextvibra1_default {
270 pwmextvibra1_default_mux {
271 ste,function = "pwmextvibra";
272 ste,pins = "pwmextvibra1_d_1";
273 };
274 pwmextvibra1_default_cfg {
275 ste,pins = "GPIO47";
276 bias-disable;
277 };
278 };
279 };
280 pwmextvibra2 {
281 pwmextvibra2_default_mode: pwmextvibra2_default {
282 pwmextvibra2_default_mux {
283 ste,function = "pwmextvibra";
284 ste,pins = "pwmextvibra2_d_1";
285 };
286 pwmextvibra1_default_cfg {
287 ste,pins = "GPIO48";
288 bias-disable;
289 };
290 };
291 };
292 gpio51 {
293 gpio51_default_mode: gpio51_default {
294 gpio51_default_mux {
295 ste,function = "gpio";
296 ste,pins = "gpio51_a_1";
297 };
298 gpio51_default_cfg {
299 ste,pins = "GPIO51";
300 output-low;
301 };
302 };
303 };
304 gpio52 {
305 gpio52_default_mode: gpio52_default {
306 gpio52_default_mux {
307 ste,function = "gpio";
308 ste,pins = "gpio52_a_1";
309 };
310 gpio52_default_cfg {
311 ste,pins = "GPIO52";
312 bias-pull-down;
313 };
314 };
315 };
316 gpio53 {
317 gpio53_default_mode: gpio53_default {
318 gpio53_default_mux {
319 ste,function = "gpio";
320 ste,pins = "gpio53_a_1";
321 };
322 gpio53_default_cfg {
323 ste,pins = "GPIO53";
324 bias-pull-down;
325 };
326 };
327 };
328 gpio54 {
329 gpio54_default_mode: gpio54_default {
330 gpio54_default_mux {
331 ste,function = "gpio";
332 ste,pins = "gpio54_a_1";
333 };
334 gpio54_default_cfg {
335 ste,pins = "GPIO54";
336 output-low;
337 };
338 };
339 };
340 pdmclkdat {
341 pdmclkdat_default_mode: pdmclkdat_default {
342 pdmclkdat_default_mux {
343 ste,function = "pdm";
344 ste,pins = "pdmclkdat_d_1";
345 };
346 pdmclkdat_default_cfg {
347 ste,pins = "GPIO55", "GPIO56";
348 bias-disable;
349 };
350 };
351 };
352};
diff --git a/Documentation/devicetree/bindings/powerpc/4xx/emac.txt b/Documentation/devicetree/bindings/powerpc/4xx/emac.txt
index 2161334a7ca5..712baf6c3e24 100644
--- a/Documentation/devicetree/bindings/powerpc/4xx/emac.txt
+++ b/Documentation/devicetree/bindings/powerpc/4xx/emac.txt
@@ -1,7 +1,7 @@
1 4xx/Axon EMAC ethernet nodes 1 4xx/Axon EMAC ethernet nodes
2 2
3 The EMAC ethernet controller in IBM and AMCC 4xx chips, and also 3 The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
4 the Axon bridge. To operate this needs to interact with a ths 4 the Axon bridge. To operate this needs to interact with a this
5 special McMAL DMA controller, and sometimes an RGMII or ZMII 5 special McMAL DMA controller, and sometimes an RGMII or ZMII
6 interface. In addition to the nodes and properties described 6 interface. In addition to the nodes and properties described
7 below, the node for the OPB bus on which the EMAC sits must have a 7 below, the node for the OPB bus on which the EMAC sits must have a
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt b/Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt
new file mode 100644
index 000000000000..641bc13983e1
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt
@@ -0,0 +1,309 @@
1===============================================================================
2Freescale Interlaken Look-Aside Controller Device Bindings
3Copyright 2012 Freescale Semiconductor Inc.
4
5CONTENTS
6 - Interlaken Look-Aside Controller (LAC) Node
7 - Example LAC Node
8 - Interlaken Look-Aside Controller (LAC) Software Portal Node
9 - Interlaken Look-Aside Controller (LAC) Software Portal Child Nodes
10 - Example LAC SWP Node with Child Nodes
11
12==============================================================================
13Interlaken Look-Aside Controller (LAC) Node
14
15DESCRIPTION
16
17The Interlaken is a narrow, high speed channelized chip-to-chip interface. To
18facilitate interoperability between a data path device and a look-aside
19co-processor, the Interlaken Look-Aside protocol is defined for short
20transaction-related transfers. Although based on the Interlaken protocol,
21Interlaken Look-Aside is not directly compatible with Interlaken and can be
22considered a different operation mode.
23
24The Interlaken LA controller connects internal platform to Interlaken serial
25interface. It accepts LA command through software portals, which are system
26memory mapped 4KB spaces. The LA commands are then translated into the
27Interlaken control words and data words, which are sent on TX side to TCAM
28through SerDes lanes.
29
30There are two 4KiB spaces defined within the LAC global register memory map.
31There is a full register set at 0x0000-0x0FFF (also known as the "hypervisor"
32version), and a subset at 0x1000-0x1FFF. The former is a superset of the
33latter, and includes certain registers that should not be accessible to
34partitioned software. Separate nodes are used for each region, with a phandle
35linking the hypervisor node to the normal operating node.
36
37PROPERTIES
38
39 - compatible
40 Usage: required
41 Value type: <string>
42 Definition: Must include "fsl,interlaken-lac". This represents only
43 those LAC CCSR registers not protected in partitioned
44 software. The version of the device is determined by the LAC
45 IP Block Revision Register (IPBRR0) at offset 0x0BF8.
46
47 Table of correspondences between IPBRR0 values and example
48 chips:
49 Value Device
50 ----------- -------
51 0x02000100 T4240
52
53 The Hypervisor node has a different compatible. It must include
54 "fsl,interlaken-lac-hv". This node represents the protected
55 LAC register space and is required except inside a partition
56 where access to the hypervisor node is to be denied.
57
58 - fsl,non-hv-node
59 Usage: required in "fsl,interlaken-lac-hv"
60 Value type: <phandle>
61 Definition: Points to the non-protected LAC CCSR mapped register space
62 node.
63
64 - reg
65 Usage: required
66 Value type: <prop-encoded-array>
67 Definition: A standard property. The first resource represents the
68 Interlaken LAC configuration registers.
69
70 - interrupts:
71 Usage: required in non-hv node only
72 Value type: <prop-encoded-array>
73 Definition: Interrupt mapping for Interlaken LAC error IRQ.
74
75EXAMPLE
76 lac: lac@229000 {
77 compatible = "fsl,interlaken-lac"
78 reg = <0x229000 0x1000>;
79 interrupts = <16 2 1 18>;
80 };
81
82 lac-hv@228000 {
83 compatible = "fsl,interlaken-lac-hv"
84 reg = <0x228000 0x1000>;
85 fsl,non-hv-node = <&lac>;
86 };
87
88===============================================================================
89Interlaken Look-Aside Controller (LAC) Software Portal Container Node
90
91DESCRIPTION
92The Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept
93Interlaken Look-Aside (ILA) commands. The Interlaken LAC software portal
94memory map occupies 128KB of memory space. The software portal memory space is
95intended to be cache-enabled. WIMG for each software space is required to be
960010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010.
97
98PROPERTIES
99
100 - #address-cells
101 Usage: required
102 Value type: <u32>
103 Definition: A standard property. Must have a value of 1.
104
105 - #size-cells
106 Usage: required
107 Value type: <u32>
108 Definition: A standard property. Must have a value of 1.
109
110 - compatible
111 Usage: required
112 Value type: <string>
113 Definition: Must include "fsl,interlaken-lac-portals"
114
115 - ranges
116 Usage: required
117 Value type: <prop-encoded-array>
118 Definition: A standard property. Specifies the address and length
119 of the LAC portal memory space.
120
121===============================================================================
122Interlaken Look-Aside Controller (LAC) Software Portals Child Nodes
123
124DESCRIPTION
125There are up to 24 available software portals with each software portal
126requiring 4KB of consecutive memory within the software portal memory mapped
127space.
128
129PROPERTIES
130
131 - compatible
132 Usage: required
133 Value type: <string>
134 Definition: Must include "fsl,interlaken-lac-portal-vX.Y" where X is
135 the Major version (IP_MJ) found in the LAC IP Block Revision
136 Register (IPBRR0), at offset 0x0BF8, and Y is the Minor version
137 (IP_MN).
138
139 Table of correspondences between version values and example chips:
140 Value Device
141 ------ -------
142 1.0 T4240
143
144 - reg
145 Usage: required
146 Value type: <prop-encoded-array>
147 Definition: A standard property. The first resource represents the
148 Interlaken LAC software portal registers.
149
150 - fsl,liodn
151 Value type: <u32>
152 Definition: The logical I/O device number (LIODN) for this device. The
153 LIODN is a number expressed by this device and used to perform
154 look-ups in the IOMMU (PAMU) address table when performing
155 DMAs. This property is automatically added by u-boot.
156
157===============================================================================
158EXAMPLE
159
160lac-portals {
161 #address-cells = <0x1>;
162 #size-cells = <0x1>;
163 compatible = "fsl,interlaken-lac-portals";
164 ranges = <0x0 0xf 0xf4400000 0x20000>;
165
166 lportal0: lac-portal@0 {
167 compatible = "fsl,interlaken-lac-portal-v1.0";
168 fsl,liodn = <0x204>;
169 reg = <0x0 0x1000>;
170 };
171
172 lportal1: lac-portal@1000 {
173 compatible = "fsl,interlaken-lac-portal-v1.0";
174 fsl,liodn = <0x205>;
175 reg = <0x1000 0x1000>;
176 };
177
178 lportal2: lac-portal@2000 {
179 compatible = "fsl,interlaken-lac-portal-v1.0";
180 fsl,liodn = <0x206>;
181 reg = <0x2000 0x1000>;
182 };
183
184 lportal3: lac-portal@3000 {
185 compatible = "fsl,interlaken-lac-portal-v1.0";
186 fsl,liodn = <0x207>;
187 reg = <0x3000 0x1000>;
188 };
189
190 lportal4: lac-portal@4000 {
191 compatible = "fsl,interlaken-lac-portal-v1.0";
192 fsl,liodn = <0x208>;
193 reg = <0x4000 0x1000>;
194 };
195
196 lportal5: lac-portal@5000 {
197 compatible = "fsl,interlaken-lac-portal-v1.0";
198 fsl,liodn = <0x209>;
199 reg = <0x5000 0x1000>;
200 };
201
202 lportal6: lac-portal@6000 {
203 compatible = "fsl,interlaken-lac-portal-v1.0";
204 fsl,liodn = <0x20A>;
205 reg = <0x6000 0x1000>;
206 };
207
208 lportal7: lac-portal@7000 {
209 compatible = "fsl,interlaken-lac-portal-v1.0";
210 fsl,liodn = <0x20B>;
211 reg = <0x7000 0x1000>;
212 };
213
214 lportal8: lac-portal@8000 {
215 compatible = "fsl,interlaken-lac-portal-v1.0";
216 fsl,liodn = <0x20C>;
217 reg = <0x8000 0x1000>;
218 };
219
220 lportal9: lac-portal@9000 {
221 compatible = "fsl,interlaken-lac-portal-v1.0";
222 fsl,liodn = <0x20D>;
223 reg = <0x9000 0x1000>;
224 };
225
226 lportal10: lac-portal@A000 {
227 compatible = "fsl,interlaken-lac-portal-v1.0";
228 fsl,liodn = <0x20E>;
229 reg = <0xA000 0x1000>;
230 };
231
232 lportal11: lac-portal@B000 {
233 compatible = "fsl,interlaken-lac-portal-v1.0";
234 fsl,liodn = <0x20F>;
235 reg = <0xB000 0x1000>;
236 };
237
238 lportal12: lac-portal@C000 {
239 compatible = "fsl,interlaken-lac-portal-v1.0";
240 fsl,liodn = <0x210>;
241 reg = <0xC000 0x1000>;
242 };
243
244 lportal13: lac-portal@D000 {
245 compatible = "fsl,interlaken-lac-portal-v1.0";
246 fsl,liodn = <0x211>;
247 reg = <0xD000 0x1000>;
248 };
249
250 lportal14: lac-portal@E000 {
251 compatible = "fsl,interlaken-lac-portal-v1.0";
252 fsl,liodn = <0x212>;
253 reg = <0xE000 0x1000>;
254 };
255
256 lportal15: lac-portal@F000 {
257 compatible = "fsl,interlaken-lac-portal-v1.0";
258 fsl,liodn = <0x213>;
259 reg = <0xF000 0x1000>;
260 };
261
262 lportal16: lac-portal@10000 {
263 compatible = "fsl,interlaken-lac-portal-v1.0";
264 fsl,liodn = <0x214>;
265 reg = <0x10000 0x1000>;
266 };
267
268 lportal17: lac-portal@11000 {
269 compatible = "fsl,interlaken-lac-portal-v1.0";
270 fsl,liodn = <0x215>;
271 reg = <0x11000 0x1000>;
272 };
273
274 lportal8: lac-portal@1200 {
275 compatible = "fsl,interlaken-lac-portal-v1.0";
276 fsl,liodn = <0x216>;
277 reg = <0x12000 0x1000>;
278 };
279
280 lportal19: lac-portal@13000 {
281 compatible = "fsl,interlaken-lac-portal-v1.0";
282 fsl,liodn = <0x217>;
283 reg = <0x13000 0x1000>;
284 };
285
286 lportal20: lac-portal@14000 {
287 compatible = "fsl,interlaken-lac-portal-v1.0";
288 fsl,liodn = <0x218>;
289 reg = <0x14000 0x1000>;
290 };
291
292 lportal21: lac-portal@15000 {
293 compatible = "fsl,interlaken-lac-portal-v1.0";
294 fsl,liodn = <0x219>;
295 reg = <0x15000 0x1000>;
296 };
297
298 lportal22: lac-portal@16000 {
299 compatible = "fsl,interlaken-lac-portal-v1.0";
300 fsl,liodn = <0x21A>;
301 reg = <0x16000 0x1000>;
302 };
303
304 lportal23: lac-portal@17000 {
305 compatible = "fsl,interlaken-lac-portal-v1.0";
306 fsl,liodn = <0x21B>;
307 reg = <0x17000 0x1000>;
308 };
309};
diff --git a/Documentation/devicetree/bindings/pps/pps-gpio.txt b/Documentation/devicetree/bindings/pps/pps-gpio.txt
new file mode 100644
index 000000000000..40bf9c3564a5
--- /dev/null
+++ b/Documentation/devicetree/bindings/pps/pps-gpio.txt
@@ -0,0 +1,20 @@
1Device-Tree Bindings for a PPS Signal on GPIO
2
3These properties describe a PPS (pulse-per-second) signal connected to
4a GPIO pin.
5
6Required properties:
7- compatible: should be "pps-gpio"
8- gpios: one PPS GPIO in the format described by ../gpio/gpio.txt
9
10Optional properties:
11- assert-falling-edge: when present, assert is indicated by a falling edge
12 (instead of by a rising edge)
13
14Example:
15 pps {
16 compatible = "pps-gpio";
17 gpios = <&gpio2 6 0>;
18
19 assert-falling-edge;
20 };
diff --git a/Documentation/devicetree/bindings/regulator/lp872x.txt b/Documentation/devicetree/bindings/regulator/lp872x.txt
new file mode 100644
index 000000000000..78183182dad9
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/lp872x.txt
@@ -0,0 +1,160 @@
1Binding for TI/National Semiconductor LP872x Driver
2
3Required properties:
4 - compatible: "ti,lp8720" or "ti,lp8725"
5 - reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725
6
7Optional properties:
8 - ti,general-config: the value of LP872X_GENERAL_CFG register (u8)
9 (LP8720)
10 bit[2]: BUCK output voltage control by external DVS pin or register
11 1 = external pin, 0 = bit7 of register 08h
12 bit[1]: sleep control by external DVS pin or register
13 1 = external pin, 0 = bit6 of register 08h
14 bit[0]: time step unit(usec). 1 = 25, 0 = 50
15
16 (LP8725)
17 bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256
18 bit[4]: BUCK2 enable control. 1 = enable, 0 = disable
19 bit[3]: BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh
20 bit[2]: BUCK1 output voltage control by external DVS pin or register
21 1 = register 08h, 0 = DVS
22 bit[1]: LDO sleep control. 1 = sleep mode, 0 = normal
23 bit[0]: BUCK1 enable control, 1 = enable, 0 = disable
24
25 For more details, please see the datasheet.
26
27 - ti,update-config: define it when LP872X_GENERAL_CFG register should be set
28 - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices.
29 - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2.
30 - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH.
31
32 Sub nodes for regulator_init_data
33 LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck)
34 LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2)
35 For more details, please see the following binding document.
36 (Documentation/devicetree/bindings/regulator/regulator.txt)
37
38Datasheet
39 - LP8720: http://www.ti.com/lit/ds/symlink/lp8720.pdf
40 - LP8725: http://www.ti.com/lit/ds/symlink/lp8725.pdf
41
42Example 1) LP8720
43
44lp8720@7d {
45 compatible = "ti,lp8720";
46 reg = <0x7d>;
47
48 /* external DVS pin used, timestep is 25usec */
49 ti,general-config = /bits/ 8 <0x03>;
50 ti,update-config;
51
52 /*
53 * The dvs-gpio depends on the processor environment.
54 * For example, following GPIO specifier means GPIO134 in OMAP4.
55 */
56 ti,dvs-gpio = <&gpio5 6 0>;
57 ti,dvs-vsel = /bits/ 8 <1>; /* SEL_V2 */
58 ti,dvs-state = /bits/ 8 <1>; /* DVS_HIGH */
59
60 vaf: ldo1 {
61 regulator-min-microvolt = <1200000>;
62 regulator-max-microvolt = <3300000>;
63 };
64
65 vmmc: ldo2 {
66 regulator-min-microvolt = <1200000>;
67 regulator-max-microvolt = <3300000>;
68 };
69
70 vcam_io: ldo3 {
71 regulator-min-microvolt = <1200000>;
72 regulator-max-microvolt = <3300000>;
73 regulator-boot-on;
74 };
75
76 vcam_core: ldo4 {
77 regulator-min-microvolt = <800000>;
78 regulator-max-microvolt = <2850000>;
79 regulator-boot-on;
80 };
81
82 vcam: ldo5 {
83 regulator-min-microvolt = <1200000>;
84 regulator-max-microvolt = <3300000>;
85 };
86
87 vcc: buck {
88 regulator-name = "VBUCK";
89 regulator-min-microvolt = <800000>;
90 regulator-max-microvolt = <2300000>;
91 };
92};
93
94Example 2) LP8725
95
96lp8725@7a {
97 compatible = "ti,lp8725";
98 reg = <0x7a>;
99
100 /* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */
101 ti,general-config = /bits/ 8 <0xdd>;
102 ti,update-config;
103
104 vcam_io: ldo1 {
105 regulator-min-microvolt = <1200000>;
106 regulator-max-microvolt = <3300000>;
107 };
108
109 vcam_core: ldo2 {
110 regulator-min-microvolt = <1200000>;
111 regulator-max-microvolt = <3300000>;
112 };
113
114 vcam: ldo3 {
115 regulator-min-microvolt = <1200000>;
116 regulator-max-microvolt = <3300000>;
117 };
118
119 vcmmb_io: ldo4 {
120 regulator-min-microvolt = <1200000>;
121 regulator-max-microvolt = <3300000>;
122 regulator-boot-on;
123 };
124
125 vcmmb_core: ldo5 {
126 regulator-min-microvolt = <1200000>;
127 regulator-max-microvolt = <3300000>;
128 regulator-boot-on;
129 };
130
131 vaux1: lilo1 {
132 regulator-name = "VAUX1";
133 regulator-min-microvolt = <800000>;
134 regulator-max-microvolt = <3300000>;
135 };
136
137 vaux2: lilo2 {
138 regulator-name = "VAUX2";
139 regulator-min-microvolt = <800000>;
140 regulator-max-microvolt = <3300000>;
141 };
142
143 vcc1: buck1 {
144 regulator-name = "VBUCK1";
145 regulator-min-microvolt = <800000>;
146 regulator-max-microvolt = <3000000>;
147 regulator-min-microamp = <460000>;
148 regulator-max-microamp = <1370000>;
149 regulator-boot-on;
150 };
151
152 vcc2: buck2 {
153 regulator-name = "VBUCK2";
154 regulator-min-microvolt = <800000>;
155 regulator-max-microvolt = <3000000>;
156 regulator-min-microamp = <460000>;
157 regulator-max-microamp = <1370000>;
158 regulator-boot-on;
159 };
160};
diff --git a/Documentation/devicetree/bindings/regulator/max8973-regulator.txt b/Documentation/devicetree/bindings/regulator/max8973-regulator.txt
new file mode 100644
index 000000000000..4f15d8a1bfd0
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/max8973-regulator.txt
@@ -0,0 +1,21 @@
1* Maxim MAX8973 Voltage Regulator
2
3Required properties:
4
5- compatible: must be "maxim,max8973"
6- reg: the i2c slave address of the regulator. It should be 0x1b.
7
8Any standard regulator properties can be used to configure the single max8973
9DCDC.
10
11Example:
12
13 max8973@1b {
14 compatible = "maxim,max8973";
15 reg = <0x1b>;
16
17 regulator-min-microvolt = <935000>;
18 regulator-max-microvolt = <1200000>;
19 regulator-boot-on;
20 regulator-always-on;
21 };
diff --git a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
new file mode 100644
index 000000000000..d5a308629c57
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
@@ -0,0 +1,72 @@
1* palmas regulator IP block devicetree bindings
2
3Required properties:
4- compatible : Should be from the list
5 ti,twl6035-pmic
6 ti,twl6036-pmic
7 ti,twl6037-pmic
8 ti,tps65913-pmic
9 ti,tps65914-pmic
10and also the generic series names
11 ti,palmas-pmic
12- interrupt-parent : The parent interrupt controller which is palmas.
13- interrupts : The interrupt number and the type which can be looked up here:
14 arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h
15- interrupts-name: The names of the individual interrupts.
16
17Optional properties:
18- ti,ldo6-vibrator : ldo6 is in vibrator mode
19
20Optional nodes:
21- regulators : Must contain a sub-node per regulator from the list below.
22 Each sub-node should contain the constraints and initialization
23 information for that regulator. See regulator.txt for a
24 description of standard properties for these sub-nodes.
25 Additional custom properties are listed below.
26
27 For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
28 smps45, smps457, smps7 depending on variant, smps6, smps[8-10],
29 ldo[1-9], ldoln, ldousb.
30
31 Optional sub-node properties:
32 ti,warm-reset - maintain voltage during warm reset(boolean)
33 ti,roof-floor - control voltage selection by pin(boolean)
34 ti,sleep-mode - mode to adopt in pmic sleep 0 - off, 1 - auto,
35 2 - eco, 3 - forced pwm
36 ti,tstep - slope control 0 - Jump, 1 10mV/us, 2 5mV/us, 3 2.5mV/us
37 ti,smps-range - OTP has the wrong range set for the hardware so override
38 0 - low range, 1 - high range.
39
40Example:
41
42#include <dt-bindings/interrupt-controller/irq.h>
43
44pmic {
45 compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
46 interrupt-parent = <&palmas>;
47 interrupts = <14 IRQ_TYPE_NONE>;
48 interrupts-name = "short-irq";
49
50 ti,ldo6-vibrator;
51
52 regulators {
53 smps12_reg : smps12 {
54 regulator-name = "smps12";
55 regulator-min-microvolt = < 600000>;
56 regulator-max-microvolt = <1500000>;
57 regulator-always-on;
58 regulator-boot-on;
59 ti,warm-reset;
60 ti,roof-floor;
61 ti,mode-sleep = <0>;
62 ti,tstep = <0>;
63 ti,smps-range = <1>;
64 };
65
66 ldo1_reg: ldo1 {
67 regulator-name = "ldo1";
68 regulator-min-microvolt = <2800000>;
69 regulator-max-microvolt = <2800000>;
70 };
71 };
72};
diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt
index ecfc6ccd67ef..48a3b8e5d6bd 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/regulator.txt
@@ -9,6 +9,7 @@ Optional properties:
9- regulator-max-microamp: largest current consumers may set 9- regulator-max-microamp: largest current consumers may set
10- regulator-always-on: boolean, regulator should never be disabled 10- regulator-always-on: boolean, regulator should never be disabled
11- regulator-boot-on: bootloader/firmware enabled regulator 11- regulator-boot-on: bootloader/firmware enabled regulator
12- regulator-allow-bypass: allow the regulator to go into bypass mode
12- <name>-supply: phandle to the parent supply/regulator node 13- <name>-supply: phandle to the parent supply/regulator node
13- regulator-ramp-delay: ramp delay for regulator(in uV/uS) 14- regulator-ramp-delay: ramp delay for regulator(in uV/uS)
14 15
diff --git a/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt b/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt
new file mode 100644
index 000000000000..2e57a33e9029
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt
@@ -0,0 +1,128 @@
1Adaptive Body Bias(ABB) SoC internal LDO regulator for Texas Instruments SoCs
2
3Required Properties:
4- compatible: Should be one of:
5 - "ti,abb-v1" for older SoCs like OMAP3
6 - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5
7- reg: Address and length of the register set for the device. It contains
8 the information of registers in the same order as described by reg-names
9- reg-names: Should contain the reg names
10 - "base-address" - contains base address of ABB module
11 - "int-address" - contains address of interrupt register for ABB module
12 (also see Optional properties)
13- #address-cell: should be 0
14- #size-cell: should be 0
15- clocks: should point to the clock node used by ABB module
16- ti,settling-time: Settling time in uSecs from SoC documentation for ABB module
17 to settle down(target time for SR2_WTCNT_VALUE).
18- ti,clock-cycles: SoC specific data about count of system ti,clock-cycles used for
19 computing settling time from SoC Documentation for ABB module(clock
20 cycles for SR2_WTCNT_VALUE).
21- ti,tranxdone-status-mask: Mask to the int-register to write-to-clear mask
22 indicating LDO tranxdone (operation complete).
23- ti,abb_info: An array of 6-tuples u32 items providing information about ABB
24 configuration needed per operational voltage of the device.
25 Each item consists of the following in the same order:
26 volt: voltage in uV - Only used to index ABB information.
27 ABB mode: one of the following:
28 0-bypass
29 1-Forward Body Bias(FBB)
30 3-Reverse Body Bias(RBB)
31 efuse: (see Optional properties)
32 RBB enable efuse Mask: (See Optional properties)
33 FBB enable efuse Mask: (See Optional properties)
34 Vset value efuse Mask: (See Optional properties)
35
36 NOTE: If more than 1 entry is present, then regulator is setup to change
37 voltage, allowing for various modes to be selected indexed off
38 the regulator. Further, ABB LDOs are considered always-on by
39 default.
40
41Optional Properties:
42- reg-names: In addition to the required properties, the following are optional
43 - "efuse-address" - Contains efuse base address used to pick up ABB info.
44 - "ldo-address" - Contains address of ABB LDO overide register address.
45 "efuse-address" is required for this.
46- ti,ldovbb-vset-mask - Required if ldo-address is set, mask for LDO override
47 register to provide override vset value.
48- ti,ldovbb-override-mask - Required if ldo-address is set, mask for LDO
49 override register to enable override vset value.
50- ti,abb_opp_sel: Addendum to the description in required properties
51 efuse: Mandatory if 'efuse-address' register is defined. Provides offset
52 from efuse-address to pick up ABB characteristics. Set to 0 if
53 'efuse-address' is not defined.
54 RBB enable efuse Mask: Optional if 'efuse-address' register is defined.
55 'ABB mode' is force set to RBB mode if value at "efuse-address"
56 + efuse maps to RBB mask. Set to 0 to ignore this.
57 FBB enable efuse Mask: Optional if 'efuse-address' register is defined.
58 'ABB mode' is force set to FBB mode if value at "efuse-address"
59 + efuse maps to FBB mask (valid only if RBB mask does not match)
60 Set to 0 to ignore this.
61 Vset value efuse Mask: Mandatory if ldo-address is set. Picks up from
62 efuse the value to set in 'ti,ldovbb-vset-mask' at ldo-address.
63
64Example #1: Simplest configuration (no efuse data, hard coded ABB table):
65abb_x: regulator-abb-x {
66 compatible = "ti,abb-v1";
67 regulator-name = "abb_x";
68 #address-cell = <0>;
69 #size-cells = <0>;
70 reg = <0x483072f0 0x8>, <0x48306818 0x4>;
71 reg-names = "base-address", "int-address";
72 ti,tranxdone-status-mask = <0x4000000>;
73 clocks = <&sysclk>;
74 ti,settling-time = <30>;
75 ti,clock-cycles = <8>;
76 ti,abb_info = <
77 /* uV ABB efuse rbb_m fbb_m vset_m */
78 1012500 0 0 0 0 0 /* Bypass */
79 1200000 3 0 0 0 0 /* RBB mandatory */
80 1320000 1 0 0 0 0 /* FBB mandatory */
81 >;
82};
83
84Example #2: Efuse bits contain ABB mode setting (no LDO override capability)
85abb_y: regulator-abb-y {
86 compatible = "ti,abb-v2";
87 regulator-name = "abb_y";
88 #address-cell = <0>;
89 #size-cells = <0>;
90 reg = <0x4a307bd0 0x8>, <0x4a306014 0x4>, <0x4A002268 0x8>;
91 reg-names = "base-address", "int-address", "efuse-address";
92 ti,tranxdone-status-mask = <0x4000000>;
93 clocks = <&sysclk>;
94 ti,settling-time = <50>;
95 ti,clock-cycles = <16>;
96 ti,abb_info = <
97 /* uV ABB efuse rbb_m fbb_m vset_m */
98 975000 0 0 0 0 0 /* Bypass */
99 1012500 0 0 0x40000 0 0 /* RBB optional */
100 1200000 0 0x4 0 0x40000 0 /* FBB optional */
101 1320000 1 0 0 0 0 /* FBB mandatory */
102 >;
103};
104
105Example #3: Efuse bits contain ABB mode setting and LDO override capability
106abb_z: regulator-abb-z {
107 compatible = "ti,abb-v2";
108 regulator-name = "abb_z";
109 #address-cell = <0>;
110 #size-cells = <0>;
111 reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>,
112 <0x4a002194 0x8>, <0x4ae0C314 0x4>;
113 reg-names = "base-address", "int-address",
114 "efuse-address", "ldo-address";
115 ti,tranxdone-status-mask = <0x8000000>;
116 /* LDOVBBMM_MUX_CTRL */
117 ti,ldovbb-override-mask = <0x400>;
118 /* LDOVBBMM_VSET_OUT */
119 ti,ldovbb-vset-mask = <0x1F>;
120 clocks = <&sysclk>;
121 ti,settling-time = <50>;
122 ti,clock-cycles = <16>;
123 ti,abb_info = <
124 /* uV ABB efuse rbb_m fbb_m vset_m */
125 975000 0 0 0 0 0 /* Bypass */
126 1200000 0 0x4 0 0x40000 0x1f00 /* FBB optional, vset */
127 >;
128};
diff --git a/Documentation/devicetree/bindings/rtc/dw-apb.txt b/Documentation/devicetree/bindings/rtc/dw-apb.txt
index 93e2b0f048e6..eb2327b2bdb3 100644
--- a/Documentation/devicetree/bindings/rtc/dw-apb.txt
+++ b/Documentation/devicetree/bindings/rtc/dw-apb.txt
@@ -5,9 +5,20 @@ Required properties:
5- reg: physical base address of the controller and length of memory mapped 5- reg: physical base address of the controller and length of memory mapped
6 region. 6 region.
7- interrupts: IRQ line for the timer. 7- interrupts: IRQ line for the timer.
8- either clocks+clock-names or clock-frequency properties
9
10Optional properties:
11- clocks : list of clock specifiers, corresponding to entries in
12 the clock-names property;
13- clock-names : should contain "timer" and "pclk" entries, matching entries
14 in the clocks property.
8- clock-frequency: The frequency in HZ of the timer. 15- clock-frequency: The frequency in HZ of the timer.
9- clock-freq: For backwards compatibility with picoxcell 16- clock-freq: For backwards compatibility with picoxcell
10 17
18If using the clock specifiers, the pclk clock is optional, as not all
19systems may use one.
20
21
11Example: 22Example:
12 23
13 timer1: timer@ffc09000 { 24 timer1: timer@ffc09000 {
@@ -23,3 +34,11 @@ Example:
23 clock-frequency = <200000000>; 34 clock-frequency = <200000000>;
24 reg = <0xffd00000 0x1000>; 35 reg = <0xffd00000 0x1000>;
25 }; 36 };
37
38 timer3: timer@ffe00000 {
39 compatible = "snps,dw-apb-timer-osc";
40 interrupts = <0 170 4>;
41 reg = <0xffe00000 0x1000>;
42 clocks = <&timer_clk>, <&timer_pclk>;
43 clock-names = "timer", "pclk";
44 };
diff --git a/Documentation/devicetree/bindings/serio/olpc,ap-sp.txt b/Documentation/devicetree/bindings/serio/olpc,ap-sp.txt
new file mode 100644
index 000000000000..0e72183f52bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/serio/olpc,ap-sp.txt
@@ -0,0 +1,13 @@
1OLPC AP-SP serio interface
2
3Required properties:
4- compatible : "olpc,ap-sp"
5- reg : base address and length of SoC's WTM registers
6- interrupts : SP-AP interrupt
7
8Example:
9 ap-sp@d4290000 {
10 compatible = "olpc,ap-sp";
11 reg = <0xd4290000 0x1000>;
12 interrupts = <40>;
13 }
diff --git a/Documentation/devicetree/bindings/sound/adi,adau1701.txt b/Documentation/devicetree/bindings/sound/adi,adau1701.txt
new file mode 100644
index 000000000000..547a49b56a62
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/adi,adau1701.txt
@@ -0,0 +1,35 @@
1Analog Devices ADAU1701
2
3Required properties:
4
5 - compatible: Should contain "adi,adau1701"
6 - reg: The i2c address. Value depends on the state of ADDR0
7 and ADDR1, as wired in hardware.
8
9Optional properties:
10
11 - reset-gpio: A GPIO spec to define which pin is connected to the
12 chip's !RESET pin. If specified, the driver will
13 assert a hardware reset at probe time.
14 - adi,pll-mode-gpios: An array of two GPIO specs to describe the GPIOs
15 the ADAU's PLL config pins are connected to.
16 The state of the pins are set according to the
17 configured clock divider on ASoC side before the
18 firmware is loaded.
19 - adi,pin-config: An array of 12 numerical values selecting one of the
20 pin configurations as described in the datasheet,
21 table 53. Note that the value of this property has
22 to be prefixed with '/bits/ 8'.
23
24Examples:
25
26 i2c_bus {
27 adau1701@34 {
28 compatible = "adi,adau1701";
29 reg = <0x34>;
30 reset-gpio = <&gpio 23 0>;
31 adi,pll-mode-gpios = <&gpio 24 0 &gpio 25 0>;
32 adi,pin-config = /bits/ 8 <0x4 0x7 0x5 0x5 0x4 0x4
33 0x4 0x4 0x4 0x4 0x4 0x4>;
34 };
35 };
diff --git a/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt b/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt
new file mode 100644
index 000000000000..f49450a87890
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt
@@ -0,0 +1,46 @@
1Freescale i.MX audio complex with WM8962 codec
2
3Required properties:
4- compatible : "fsl,imx-audio-wm8962"
5- model : The user-visible name of this sound complex
6- ssi-controller : The phandle of the i.MX SSI controller
7- audio-codec : The phandle of the WM8962 audio codec
8- audio-routing : A list of the connections between audio components.
9 Each entry is a pair of strings, the first being the connection's sink,
10 the second being the connection's source. Valid names could be power
11 supplies, WM8962 pins, and the jacks on the board:
12
13 Power supplies:
14 * Mic Bias
15
16 Board connectors:
17 * Mic Jack
18 * Headphone Jack
19 * Ext Spk
20
21- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
22- mux-ext-port : The external port of the i.MX audio muxer
23
24Note: The AUDMUX port numbering should start at 1, which is consistent with
25hardware manual.
26
27Example:
28
29sound {
30 compatible = "fsl,imx6q-sabresd-wm8962",
31 "fsl,imx-audio-wm8962";
32 model = "wm8962-audio";
33 ssi-controller = <&ssi2>;
34 audio-codec = <&codec>;
35 audio-routing =
36 "Headphone Jack", "HPOUTL",
37 "Headphone Jack", "HPOUTR",
38 "Ext Spk", "SPKOUTL",
39 "Ext Spk", "SPKOUTR",
40 "MICBIAS", "AMIC",
41 "IN3R", "MICBIAS",
42 "DMIC", "MICBIAS",
43 "DMICDAT", "DMIC";
44 mux-int-port = <2>;
45 mux-ext-port = <3>;
46};
diff --git a/Documentation/devicetree/bindings/sound/mxs-saif.txt b/Documentation/devicetree/bindings/sound/mxs-saif.txt
index c37ba6143d9b..7ba07a118e37 100644
--- a/Documentation/devicetree/bindings/sound/mxs-saif.txt
+++ b/Documentation/devicetree/bindings/sound/mxs-saif.txt
@@ -3,8 +3,11 @@
3Required properties: 3Required properties:
4- compatible: Should be "fsl,<chip>-saif" 4- compatible: Should be "fsl,<chip>-saif"
5- reg: Should contain registers location and length 5- reg: Should contain registers location and length
6- interrupts: Should contain ERROR and DMA interrupts 6- interrupts: Should contain ERROR interrupt number
7- fsl,saif-dma-channel: APBX DMA channel for the SAIF 7- dmas: DMA specifier, consisting of a phandle to DMA controller node
8 and SAIF DMA channel ID.
9 Refer to dma.txt and fsl-mxs-dma.txt for details.
10- dma-names: Must be "rx-tx".
8 11
9Optional properties: 12Optional properties:
10- fsl,saif-master: phandle to the master SAIF. It's only required for 13- fsl,saif-master: phandle to the master SAIF. It's only required for
@@ -23,14 +26,16 @@ aliases {
23saif0: saif@80042000 { 26saif0: saif@80042000 {
24 compatible = "fsl,imx28-saif"; 27 compatible = "fsl,imx28-saif";
25 reg = <0x80042000 2000>; 28 reg = <0x80042000 2000>;
26 interrupts = <59 80>; 29 interrupts = <59>;
27 fsl,saif-dma-channel = <4>; 30 dmas = <&dma_apbx 4>;
31 dma-names = "rx-tx";
28}; 32};
29 33
30saif1: saif@80046000 { 34saif1: saif@80046000 {
31 compatible = "fsl,imx28-saif"; 35 compatible = "fsl,imx28-saif";
32 reg = <0x80046000 2000>; 36 reg = <0x80046000 2000>;
33 interrupts = <58 81>; 37 interrupts = <58>;
34 fsl,saif-dma-channel = <5>; 38 dmas = <&dma_apbx 5>;
39 dma-names = "rx-tx";
35 fsl,saif-master = <&saif0>; 40 fsl,saif-master = <&saif0>;
36}; 41};
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
new file mode 100644
index 000000000000..d130818700b2
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
@@ -0,0 +1,71 @@
1NVIDIA Tegra audio complex, with RT5640 CODEC
2
3Required properties:
4- compatible : "nvidia,tegra-audio-rt5640"
5- clocks : Must contain an entry for each entry in clock-names.
6- clock-names : Must include the following entries:
7 "pll_a" (The Tegra clock of that name),
8 "pll_a_out0" (The Tegra clock of that name),
9 "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
10- nvidia,model : The user-visible name of this sound complex.
11- nvidia,audio-routing : A list of the connections between audio components.
12 Each entry is a pair of strings, the first being the connection's sink,
13 the second being the connection's source. Valid names for sources and
14 sinks are the RT5640's pins, and the jacks on the board:
15
16 RT5640 pins:
17
18 * DMIC1
19 * DMIC2
20 * MICBIAS1
21 * IN1P
22 * IN1R
23 * IN2P
24 * IN2R
25 * HPOL
26 * HPOR
27 * LOUTL
28 * LOUTR
29 * MONOP
30 * MONON
31 * SPOLP
32 * SPOLN
33 * SPORP
34 * SPORN
35
36 Board connectors:
37
38 * Headphones
39 * Speakers
40
41- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's
42 connected to the CODEC.
43- nvidia,audio-codec : The phandle of the RT5640 audio codec. This binding
44 assumes that AIF1 on the CODEC is connected to Tegra.
45
46Optional properties:
47- nvidia,hp-det-gpios : The GPIO that detects headphones are plugged in
48
49Example:
50
51sound {
52 compatible = "nvidia,tegra-audio-rt5640-dalmore",
53 "nvidia,tegra-audio-rt5640";
54 nvidia,model = "NVIDIA Tegra Dalmore";
55
56 nvidia,audio-routing =
57 "Headphones", "HPOR",
58 "Headphones", "HPOL",
59 "Speakers", "SPORP",
60 "Speakers", "SPORN",
61 "Speakers", "SPOLP",
62 "Speakers", "SPOLN";
63
64 nvidia,i2s-controller = <&tegra_i2s1>;
65 nvidia,audio-codec = <&rt5640>;
66
67 nvidia,hp-det-gpios = <&gpio 143 0>; /* GPIO PR7 */
68
69 clocks = <&tegra_car 216>, <&tegra_car 217>, <&tegra_car 120>;
70 clock-names = "pll_a", "pll_a_out0", "mclk";
71};
diff --git a/Documentation/devicetree/bindings/sound/rt5640.txt b/Documentation/devicetree/bindings/sound/rt5640.txt
new file mode 100644
index 000000000000..005bcb24d72d
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/rt5640.txt
@@ -0,0 +1,30 @@
1RT5640 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7- compatible : "realtek,rt5640".
8
9- reg : The I2C address of the device.
10
11- interrupts : The CODEC's interrupt output.
12
13Optional properties:
14
15- realtek,in1-differential
16- realtek,in2-differential
17 Boolean. Indicate MIC1/2 input are differential, rather than single-ended.
18
19- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
20
21Example:
22
23rt5640 {
24 compatible = "realtek,rt5640";
25 reg = <0x1c>;
26 interrupt-parent = <&gpio>;
27 interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
28 realtek,ldo1-en-gpios =
29 <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
30};
diff --git a/Documentation/devicetree/bindings/sound/samsung-i2s.txt b/Documentation/devicetree/bindings/sound/samsung-i2s.txt
index 3070046da2e5..025e66b85a43 100644
--- a/Documentation/devicetree/bindings/sound/samsung-i2s.txt
+++ b/Documentation/devicetree/bindings/sound/samsung-i2s.txt
@@ -8,6 +8,16 @@ Required SoC Specific Properties:
8- dmas: list of DMA controller phandle and DMA request line ordered pairs. 8- dmas: list of DMA controller phandle and DMA request line ordered pairs.
9- dma-names: identifier string for each DMA request line in the dmas property. 9- dma-names: identifier string for each DMA request line in the dmas property.
10 These strings correspond 1:1 with the ordered pairs in dmas. 10 These strings correspond 1:1 with the ordered pairs in dmas.
11- clocks: Handle to iis clock and RCLK source clk.
12- clock-names:
13 i2s0 uses some base clks from CMU and some are from audio subsystem internal
14 clock controller. The clock names for i2s0 should be "iis", "i2s_opclk0" and
15 "i2s_opclk1" as shown in the example below.
16 i2s1 and i2s2 uses clocks from CMU. The clock names for i2s1 and i2s2 should
17 be "iis" and "i2s_opclk0".
18 "iis" is the i2s bus clock and i2s_opclk0, i2s_opclk1 are sources of the root
19 clk. i2s0 has internal mux to select the source of root clk and i2s1 and i2s2
20 doesn't have any such mux.
11 21
12Optional SoC Specific Properties: 22Optional SoC Specific Properties:
13 23
@@ -20,44 +30,26 @@ Optional SoC Specific Properties:
20 then this flag is enabled. 30 then this flag is enabled.
21- samsung,idma-addr: Internal DMA register base address of the audio 31- samsung,idma-addr: Internal DMA register base address of the audio
22 sub system(used in secondary sound source). 32 sub system(used in secondary sound source).
23 33- pinctrl-0: Should specify pin control groups used for this controller.
24Required Board Specific Properties: 34- pinctrl-names: Should contain only one value - "default".
25
26- gpios: The gpio specifier for data out,data in, LRCLK, CDCLK and SCLK
27 interface lines. The format of the gpio specifier depends on the gpio
28 controller.
29 The syntax of samsung gpio specifier is
30 <[phandle of the gpio controller node]
31 [pin number within the gpio controller]
32 [mux function]
33 [flags and pull up/down]
34 [drive strength]>
35 35
36Example: 36Example:
37 37
38- SoC Specific Portion: 38i2s0: i2s@03830000 {
39
40i2s@03830000 {
41 compatible = "samsung,i2s-v5"; 39 compatible = "samsung,i2s-v5";
42 reg = <0x03830000 0x100>; 40 reg = <0x03830000 0x100>;
43 dmas = <&pdma0 10 41 dmas = <&pdma0 10
44 &pdma0 9 42 &pdma0 9
45 &pdma0 8>; 43 &pdma0 8>;
46 dma-names = "tx", "rx", "tx-sec"; 44 dma-names = "tx", "rx", "tx-sec";
45 clocks = <&clock_audss EXYNOS_I2S_BUS>,
46 <&clock_audss EXYNOS_I2S_BUS>,
47 <&clock_audss EXYNOS_SCLK_I2S>;
48 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
47 samsung,supports-6ch; 49 samsung,supports-6ch;
48 samsung,supports-rstclr; 50 samsung,supports-rstclr;
49 samsung,supports-secdai; 51 samsung,supports-secdai;
50 samsung,idma-addr = <0x03000000>; 52 samsung,idma-addr = <0x03000000>;
51}; 53 pinctrl-names = "default";
52 54 pinctrl-0 = <&i2s0_bus>;
53- Board Specific Portion:
54
55i2s@03830000 {
56 gpios = <&gpz 0 2 0 0>, /* I2S_0_SCLK */
57 <&gpz 1 2 0 0>, /* I2S_0_CDCLK */
58 <&gpz 2 2 0 0>, /* I2S_0_LRCK */
59 <&gpz 3 2 0 0>, /* I2S_0_SDI */
60 <&gpz 4 2 0 0>, /* I2S_0_SDO[1] */
61 <&gpz 5 2 0 0>, /* I2S_0_SDO[2] */
62 <&gpz 6 2 0 0>; /* I2S_0_SDO[3] */
63}; 55};
diff --git a/Documentation/devicetree/bindings/sound/sgtl5000.txt b/Documentation/devicetree/bindings/sound/sgtl5000.txt
index 9cc44449508d..955df60a118c 100644
--- a/Documentation/devicetree/bindings/sound/sgtl5000.txt
+++ b/Documentation/devicetree/bindings/sound/sgtl5000.txt
@@ -5,9 +5,12 @@ Required properties:
5 5
6- reg : the I2C address of the device 6- reg : the I2C address of the device
7 7
8- clocks : the clock provider of SYS_MCLK
9
8Example: 10Example:
9 11
10codec: sgtl5000@0a { 12codec: sgtl5000@0a {
11 compatible = "fsl,sgtl5000"; 13 compatible = "fsl,sgtl5000";
12 reg = <0x0a>; 14 reg = <0x0a>;
15 clocks = <&clks 150>;
13}; 16};
diff --git a/Documentation/devicetree/bindings/sound/spdif-receiver.txt b/Documentation/devicetree/bindings/sound/spdif-receiver.txt
new file mode 100644
index 000000000000..80f807bf8a1d
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/spdif-receiver.txt
@@ -0,0 +1,10 @@
1Device-Tree bindings for dummy spdif receiver
2
3Required properties:
4 - compatible: should be "linux,spdif-dir".
5
6Example node:
7
8 codec: spdif-receiver {
9 compatible = "linux,spdif-dir";
10 };
diff --git a/Documentation/devicetree/bindings/sound/spdif-transmitter.txt b/Documentation/devicetree/bindings/sound/spdif-transmitter.txt
new file mode 100644
index 000000000000..55a85841dd85
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/spdif-transmitter.txt
@@ -0,0 +1,10 @@
1Device-Tree bindings for dummy spdif transmitter
2
3Required properties:
4 - compatible: should be "linux,spdif-dit".
5
6Example node:
7
8 codec: spdif-transmitter {
9 compatible = "linux,spdif-dit";
10 };
diff --git a/Documentation/devicetree/bindings/sound/ssm2518.txt b/Documentation/devicetree/bindings/sound/ssm2518.txt
new file mode 100644
index 000000000000..59381a778c79
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/ssm2518.txt
@@ -0,0 +1,20 @@
1SSM2518 audio amplifier
2
3This device supports I2C only.
4
5Required properties:
6 - compatible : Must be "adi,ssm2518"
7 - reg : the I2C address of the device. This will either be 0x34 (ADDR pin low)
8 or 0x35 (ADDR pin high)
9
10Optional properties:
11 - gpios : GPIO connected to the nSD pin. If the property is not present it is
12 assumed that the nSD pin is hardwired to always on.
13
14Example:
15
16 ssm2518: ssm2518@34 {
17 compatible = "adi,ssm2518";
18 reg = <0x34>;
19 gpios = <&gpio 5 0>;
20 };
diff --git a/Documentation/devicetree/bindings/sound/ti,tas5086.txt b/Documentation/devicetree/bindings/sound/ti,tas5086.txt
index 8ea4f5b4818d..d2866a0d6a26 100644
--- a/Documentation/devicetree/bindings/sound/ti,tas5086.txt
+++ b/Documentation/devicetree/bindings/sound/ti,tas5086.txt
@@ -20,6 +20,17 @@ Optional properties:
20 When not specified, the hardware default of 1300ms 20 When not specified, the hardware default of 1300ms
21 is retained. 21 is retained.
22 22
23 - ti,mid-z-channel-X: Boolean properties, X being a number from 1 to 6.
24 If given, channel X will start with the Mid-Z start
25 sequence, otherwise the default Low-Z scheme is used.
26
27 The correct configuration depends on how the power
28 stages connected to the PWM output pins work. Not all
29 power stages are compatible to Mid-Z - please refer
30 to the datasheets for more details.
31
32 Most systems should not set any of these properties.
33
23Examples: 34Examples:
24 35
25 i2c_bus { 36 i2c_bus {
diff --git a/Documentation/devicetree/bindings/sound/wm8962.txt b/Documentation/devicetree/bindings/sound/wm8962.txt
index dceb3b1c2bb7..7f82b59ec8f9 100644
--- a/Documentation/devicetree/bindings/sound/wm8962.txt
+++ b/Documentation/devicetree/bindings/sound/wm8962.txt
@@ -8,9 +8,32 @@ Required properties:
8 8
9 - reg : the I2C address of the device. 9 - reg : the I2C address of the device.
10 10
11Optional properties:
12 - spk-mono: This is a boolean property. If present, the SPK_MONO bit
13 of R51 (Class D Control 2) gets set, indicating that the speaker is
14 in mono mode.
15
16 - mic-cfg : Default register value for R48 (Additional Control 4).
17 If absent, the default should be the register default.
18
19 - gpio-cfg : A list of GPIO configuration register values. The list must
20 be 6 entries long. If absent, no configuration of these registers is
21 performed. And note that only the value within [0x0, 0xffff] is valid.
22 Any other value is regarded as setting the GPIO register by its reset
23 value 0x0.
24
11Example: 25Example:
12 26
13codec: wm8962@1a { 27codec: wm8962@1a {
14 compatible = "wlf,wm8962"; 28 compatible = "wlf,wm8962";
15 reg = <0x1a>; 29 reg = <0x1a>;
30
31 gpio-cfg = <
32 0x0000 /* 0:Default */
33 0x0000 /* 1:Default */
34 0x0013 /* 2:FN_DMICCLK */
35 0x0000 /* 3:Default */
36 0x8014 /* 4:FN_DMICCDAT */
37 0x0000 /* 5:Default */
38 >;
16}; 39};
diff --git a/Documentation/devicetree/bindings/spi/brcm,bcm2835-spi.txt b/Documentation/devicetree/bindings/spi/brcm,bcm2835-spi.txt
index 8bf89c643640..f11f295c8450 100644
--- a/Documentation/devicetree/bindings/spi/brcm,bcm2835-spi.txt
+++ b/Documentation/devicetree/bindings/spi/brcm,bcm2835-spi.txt
@@ -2,7 +2,7 @@ Broadcom BCM2835 SPI0 controller
2 2
3The BCM2835 contains two forms of SPI master controller, one known simply as 3The BCM2835 contains two forms of SPI master controller, one known simply as
4SPI0, and the other known as the "Universal SPI Master"; part of the 4SPI0, and the other known as the "Universal SPI Master"; part of the
5auxilliary block. This binding applies to the SPI0 controller. 5auxiliary block. This binding applies to the SPI0 controller.
6 6
7Required properties: 7Required properties:
8- compatible: Should be "brcm,bcm2835-spi". 8- compatible: Should be "brcm,bcm2835-spi".
diff --git a/Documentation/devicetree/bindings/spi/omap-spi.txt b/Documentation/devicetree/bindings/spi/omap-spi.txt
index 938809c6829b..4c85c4c69584 100644
--- a/Documentation/devicetree/bindings/spi/omap-spi.txt
+++ b/Documentation/devicetree/bindings/spi/omap-spi.txt
@@ -10,7 +10,18 @@ Required properties:
10 input. The default is D0 as input and 10 input. The default is D0 as input and
11 D1 as output. 11 D1 as output.
12 12
13Example: 13Optional properties:
14- dmas: List of DMA specifiers with the controller specific format
15 as described in the generic DMA client binding. A tx and rx
16 specifier is required for each chip select.
17- dma-names: List of DMA request names. These strings correspond
18 1:1 with the DMA specifiers listed in dmas. The string naming
19 is to be "rxN" and "txN" for RX and TX requests,
20 respectively, where N equals the chip select number.
21
22Examples:
23
24[hwmod populated DMA resources]
14 25
15mcspi1: mcspi@1 { 26mcspi1: mcspi@1 {
16 #address-cells = <1>; 27 #address-cells = <1>;
@@ -20,3 +31,17 @@ mcspi1: mcspi@1 {
20 ti,spi-num-cs = <4>; 31 ti,spi-num-cs = <4>;
21}; 32};
22 33
34[generic DMA request binding]
35
36mcspi1: mcspi@1 {
37 #address-cells = <1>;
38 #size-cells = <0>;
39 compatible = "ti,omap4-mcspi";
40 ti,hwmods = "mcspi1";
41 ti,spi-num-cs = <2>;
42 dmas = <&edma 42
43 &edma 43
44 &edma 44
45 &edma 45>;
46 dma-names = "tx0", "rx0", "tx1", "rx1";
47};
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
new file mode 100644
index 000000000000..ed9377811ee2
--- /dev/null
+++ b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
@@ -0,0 +1,99 @@
1Device-Tree bindings for LVDS Display Bridge (ldb)
2
3LVDS Display Bridge
4===================
5
6The LVDS Display Bridge device tree node contains up to two lvds-channel
7nodes describing each of the two LVDS encoder channels of the bridge.
8
9Required properties:
10 - #address-cells : should be <1>
11 - #size-cells : should be <0>
12 - compatible : should be "fsl,imx53-ldb" or "fsl,imx6q-ldb".
13 Both LDB versions are similar, but i.MX6 has an additional
14 multiplexer in the front to select any of the four IPU display
15 interfaces as input for each LVDS channel.
16 - gpr : should be <&gpr> on i.MX53 and i.MX6q.
17 The phandle points to the iomuxc-gpr region containing the LVDS
18 control register.
19- clocks, clock-names : phandles to the LDB divider and selector clocks and to
20 the display interface selector clocks, as described in
21 Documentation/devicetree/bindings/clock/clock-bindings.txt
22 The following clocks are expected on i.MX53:
23 "di0_pll" - LDB LVDS channel 0 mux
24 "di1_pll" - LDB LVDS channel 1 mux
25 "di0" - LDB LVDS channel 0 gate
26 "di1" - LDB LVDS channel 1 gate
27 "di0_sel" - IPU1 DI0 mux
28 "di1_sel" - IPU1 DI1 mux
29 On i.MX6q the following additional clocks are needed:
30 "di2_sel" - IPU2 DI0 mux
31 "di3_sel" - IPU2 DI1 mux
32 The needed clock numbers for each are documented in
33 Documentation/devicetree/bindings/clock/imx5-clock.txt, and in
34 Documentation/devicetree/bindings/clock/imx6q-clock.txt.
35
36Optional properties:
37 - pinctrl-names : should be "default" on i.MX53, not used on i.MX6q
38 - pinctrl-0 : a phandle pointing to LVDS pin settings on i.MX53,
39 not used on i.MX6q
40 - fsl,dual-channel : boolean. if it exists, only LVDS channel 0 should
41 be configured - one input will be distributed on both outputs in dual
42 channel mode
43
44LVDS Channel
45============
46
47Each LVDS Channel has to contain a display-timings node that describes the
48video timings for the connected LVDS display. For detailed information, also
49have a look at Documentation/devicetree/bindings/video/display-timing.txt.
50
51Required properties:
52 - reg : should be <0> or <1>
53 - crtcs : a list of phandles with index pointing to the IPU display interfaces
54 that can be used as video source for this channel.
55 - fsl,data-mapping : should be "spwg" or "jeida"
56 This describes how the color bits are laid out in the
57 serialized LVDS signal.
58 - fsl,data-width : should be <18> or <24>
59
60example:
61
62gpr: iomuxc-gpr@53fa8000 {
63 /* ... */
64};
65
66ldb: ldb@53fa8008 {
67 #address-cells = <1>;
68 #size-cells = <0>;
69 compatible = "fsl,imx53-ldb";
70 gpr = <&gpr>;
71 clocks = <&clks 122>, <&clks 120>,
72 <&clks 115>, <&clks 116>,
73 <&clks 123>, <&clks 85>;
74 clock-names = "di0_pll", "di1_pll",
75 "di0_sel", "di1_sel",
76 "di0", "di1";
77
78 lvds-channel@0 {
79 reg = <0>;
80 crtcs = <&ipu 0>;
81 fsl,data-mapping = "spwg";
82 fsl,data-width = <24>;
83
84 display-timings {
85 /* ... */
86 };
87 };
88
89 lvds-channel@1 {
90 reg = <1>;
91 crtcs = <&ipu 1>;
92 fsl,data-mapping = "spwg";
93 fsl,data-width = <24>;
94
95 display-timings {
96 /* ... */
97 };
98 };
99};
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
index cb47bfbcaeea..b5a86d20ee36 100644
--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
@@ -44,7 +44,7 @@ Example 1: In this example, the system uses only the first global timer
44 }; 44 };
45 45
46Example 2: In this example, the MCT global and local timer interrupts are 46Example 2: In this example, the MCT global and local timer interrupts are
47 connected to two seperate interrupt controllers. Hence, an 47 connected to two separate interrupt controllers. Hence, an
48 interrupt-map is created to map the interrupts to the respective 48 interrupt-map is created to map the interrupts to the respective
49 interrupt controllers. 49 interrupt controllers.
50 50
diff --git a/Documentation/devicetree/bindings/timer/stericsson-u300-apptimer.txt b/Documentation/devicetree/bindings/timer/stericsson-u300-apptimer.txt
new file mode 100644
index 000000000000..9499bc8ee9e3
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/stericsson-u300-apptimer.txt
@@ -0,0 +1,18 @@
1ST-Ericsson U300 apptimer
2
3Required properties:
4
5- compatible : should be "stericsson,u300-apptimer"
6- reg : Specifies base physical address and size of the registers.
7- interrupts : A list of 4 interrupts; one for each subtimer. These
8 are, in order: OS (operating system), DD (device driver) both
9 adopted for EPOC/Symbian with two specific IRQs for these tasks,
10 then GP1 and GP2, which are general-purpose timers.
11
12Example:
13
14timer {
15 compatible = "stericsson,u300-apptimer";
16 reg = <0xc0014000 0x1000>;
17 interrupts = <24 25 26 27>;
18};
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt
index b462d0c54823..c662eb36be29 100644
--- a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt
@@ -8,6 +8,8 @@ Required properties:
8Optional properties: 8Optional properties:
9- fsl,uart-has-rtscts : Indicate the uart has rts and cts 9- fsl,uart-has-rtscts : Indicate the uart has rts and cts
10- fsl,irda-mode : Indicate the uart supports irda mode 10- fsl,irda-mode : Indicate the uart supports irda mode
11- fsl,dte-mode : Indicate the uart works in DTE mode. The uart works
12 is DCE mode by default.
11 13
12Example: 14Example:
13 15
@@ -16,4 +18,5 @@ serial@73fbc000 {
16 reg = <0x73fbc000 0x4000>; 18 reg = <0x73fbc000 0x4000>;
17 interrupts = <31>; 19 interrupts = <31>;
18 fsl,uart-has-rtscts; 20 fsl,uart-has-rtscts;
21 fsl,dte-mode;
19}; 22};
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt
new file mode 100644
index 000000000000..6fd1dd1638dd
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt
@@ -0,0 +1,14 @@
1* Freescale low power universal asynchronous receiver/transmitter (lpuart)
2
3Required properties:
4- compatible : Should be "fsl,<soc>-lpuart"
5- reg : Address and length of the register set for the device
6- interrupts : Should contain uart interrupt
7
8Example:
9
10uart0: serial@40027000 {
11 compatible = "fsl,vf610-lpuart";
12 reg = <0x40027000 0x1000>;
13 interrupts = <0 61 0x00>;
14 };
diff --git a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
new file mode 100644
index 000000000000..20468b2a7516
--- /dev/null
+++ b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
@@ -0,0 +1,16 @@
1* Universal Flash Storage (UFS) Host Controller
2
3UFSHC nodes are defined to describe on-chip UFS host controllers.
4Each UFS controller instance should have its own node.
5
6Required properties:
7- compatible : compatible list, contains "jedec,ufs-1.1"
8- interrupts : <interrupt mapping for UFS host controller IRQ>
9- reg : <registers mapping>
10
11Example:
12 ufshc@0xfc598000 {
13 compatible = "jedec,ufs-1.1";
14 reg = <0xfc598000 0x800>;
15 interrupts = <0 28 0>;
16 };
diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
index ea840f7f9258..dc9dc8c87f15 100644
--- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt
+++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
@@ -12,7 +12,7 @@ AM33XX MUSB GLUE
12 represents PERIPHERAL. 12 represents PERIPHERAL.
13 - port1-mode : Should be "1" to represent HOST. "3" signifies OTG and "2" 13 - port1-mode : Should be "1" to represent HOST. "3" signifies OTG and "2"
14 represents PERIPHERAL. 14 represents PERIPHERAL.
15 - power : Should be "250". This signifies the controller can supply upto 15 - power : Should be "250". This signifies the controller can supply up to
16 500mA when operating in host mode. 16 500mA when operating in host mode.
17 17
18Example: 18Example:
diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
index 60bd2150a3e6..55f51af08bc7 100644
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
@@ -47,3 +47,85 @@ usb1: gadget@fffa4000 {
47 interrupts = <10 4>; 47 interrupts = <10 4>;
48 atmel,vbus-gpio = <&pioC 5 0>; 48 atmel,vbus-gpio = <&pioC 5 0>;
49}; 49};
50
51Atmel High-Speed USB device controller
52
53Required properties:
54 - compatible: Should be "atmel,at91sam9rl-udc"
55 - reg: Address and length of the register set for the device
56 - interrupts: Should contain usba interrupt
57 - ep childnode: To specify the number of endpoints and their properties.
58
59Optional properties:
60 - atmel,vbus-gpio: If present, specifies a gpio that needs to be
61 activated for the bus to be powered.
62
63Required child node properties:
64 - name: Name of the endpoint.
65 - reg: Num of the endpoint.
66 - atmel,fifo-size: Size of the fifo.
67 - atmel,nb-banks: Number of banks.
68 - atmel,can-dma: Boolean to specify if the endpoint support DMA.
69 - atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
70
71usb2: gadget@fff78000 {
72 #address-cells = <1>;
73 #size-cells = <0>;
74 compatible = "atmel,at91sam9rl-udc";
75 reg = <0x00600000 0x80000
76 0xfff78000 0x400>;
77 interrupts = <27 4 0>;
78 atmel,vbus-gpio = <&pioB 19 0>;
79
80 ep0 {
81 reg = <0>;
82 atmel,fifo-size = <64>;
83 atmel,nb-banks = <1>;
84 };
85
86 ep1 {
87 reg = <1>;
88 atmel,fifo-size = <1024>;
89 atmel,nb-banks = <2>;
90 atmel,can-dma;
91 atmel,can-isoc;
92 };
93
94 ep2 {
95 reg = <2>;
96 atmel,fifo-size = <1024>;
97 atmel,nb-banks = <2>;
98 atmel,can-dma;
99 atmel,can-isoc;
100 };
101
102 ep3 {
103 reg = <3>;
104 atmel,fifo-size = <1024>;
105 atmel,nb-banks = <3>;
106 atmel,can-dma;
107 };
108
109 ep4 {
110 reg = <4>;
111 atmel,fifo-size = <1024>;
112 atmel,nb-banks = <3>;
113 atmel,can-dma;
114 };
115
116 ep5 {
117 reg = <5>;
118 atmel,fifo-size = <1024>;
119 atmel,nb-banks = <3>;
120 atmel,can-dma;
121 atmel,can-isoc;
122 };
123
124 ep6 {
125 reg = <6>;
126 atmel,fifo-size = <1024>;
127 atmel,nb-banks = <3>;
128 atmel,can-dma;
129 atmel,can-isoc;
130 };
131};
diff --git a/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt b/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
index 1c04a4c9515f..b4b5b7906c88 100644
--- a/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
+++ b/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
@@ -5,6 +5,12 @@ Required properties:
5- reg: Should contain registers location and length 5- reg: Should contain registers location and length
6- interrupts: Should contain controller interrupt 6- interrupts: Should contain controller interrupt
7 7
8Recommended properies:
9- phy_type: the type of the phy connected to the core. Should be one
10 of "utmi", "utmi_wide", "ulpi", "serial" or "hsic". Without this
11 property the PORTSC register won't be touched
12- dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg"
13
8Optional properties: 14Optional properties:
9- fsl,usbphy: phandler of usb phy that connects to the only one port 15- fsl,usbphy: phandler of usb phy that connects to the only one port
10- fsl,usbmisc: phandler of non-core register device, with one argument 16- fsl,usbmisc: phandler of non-core register device, with one argument
diff --git a/Documentation/devicetree/bindings/usb/exynos-usb.txt b/Documentation/devicetree/bindings/usb/exynos-usb.txt
index b3abde736017..d967ba16de60 100644
--- a/Documentation/devicetree/bindings/usb/exynos-usb.txt
+++ b/Documentation/devicetree/bindings/usb/exynos-usb.txt
@@ -48,3 +48,37 @@ Example:
48 clocks = <&clock 285>; 48 clocks = <&clock 285>;
49 clock-names = "usbhost"; 49 clock-names = "usbhost";
50 }; 50 };
51
52DWC3
53Required properties:
54 - compatible: should be "samsung,exynos5250-dwusb3" for USB 3.0 DWC3
55 controller.
56 - #address-cells, #size-cells : should be '1' if the device has sub-nodes
57 with 'reg' property.
58 - ranges: allows valid 1:1 translation between child's address space and
59 parent's address space
60 - clocks: Clock IDs array as required by the controller.
61 - clock-names: names of clocks correseponding to IDs in the clock property
62
63Sub-nodes:
64The dwc3 core should be added as subnode to Exynos dwc3 glue.
65- dwc3 :
66 The binding details of dwc3 can be found in:
67 Documentation/devicetree/bindings/usb/dwc3.txt
68
69Example:
70 usb@12000000 {
71 compatible = "samsung,exynos5250-dwusb3";
72 clocks = <&clock 286>;
73 clock-names = "usbdrd30";
74 #address-cells = <1>;
75 #size-cells = <1>;
76 ranges;
77
78 dwc3 {
79 compatible = "synopsys,dwc3";
80 reg = <0x12000000 0x10000>;
81 interrupts = <0 72 0>;
82 usb-phy = <&usb2_phy &usb3_phy>;
83 };
84 };
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
index 34c952883276..df0933043a5b 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
@@ -6,27 +6,10 @@ Practice : Universal Serial Bus" with the following modifications
6and additions : 6and additions :
7 7
8Required properties : 8Required properties :
9 - compatible : Should be "nvidia,tegra20-ehci" for USB controllers 9 - compatible : Should be "nvidia,tegra20-ehci".
10 used in host mode. 10 - nvidia,phy : phandle of the PHY that the controller is connected to.
11 - phy_type : Should be one of "ulpi" or "utmi". 11 - clocks : Contains a single entry which defines the USB controller's clock.
12 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
13 activated for the bus to be powered.
14 - nvidia,phy : phandle of the PHY instance, the controller is connected to.
15
16Required properties for phy_type == ulpi:
17 - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
18 12
19Optional properties: 13Optional properties:
20 - dr_mode : dual role mode. Indicates the working mode for 14 - nvidia,needs-double-reset : boolean is to be set for some of the Tegra20
21 nvidia,tegra20-ehci compatible controllers. Can be "host", "peripheral", 15 USB ports, which need reset twice due to hardware issues.
22 or "otg". Default to "host" if not defined for backward compatibility.
23 host means this is a host controller
24 peripheral means it is device controller
25 otg means it can operate as either ("on the go")
26 - nvidia,has-legacy-mode : boolean indicates whether this controller can
27 operate in legacy mode (as APX 2500 / 2600). In legacy mode some
28 registers are accessed through the APB_MISC base address instead of
29 the USB controller. Since this is a legacy issue it probably does not
30 warrant a compatible string of its own.
31 - nvidia,needs-double-reset : boolean is to be set for some of the Tegra2
32 USB ports, which need reset twice due to hardware issues.
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
index 6bdaba2f0aa1..c4c9e9e664aa 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
@@ -4,14 +4,49 @@ The device node for Tegra SOC USB PHY:
4 4
5Required properties : 5Required properties :
6 - compatible : Should be "nvidia,tegra20-usb-phy". 6 - compatible : Should be "nvidia,tegra20-usb-phy".
7 - reg : Address and length of the register set for the USB PHY interface. 7 - reg : Defines the following set of registers, in the order listed:
8 - phy_type : Should be one of "ulpi" or "utmi". 8 - The PHY's own register set.
9 Always present.
10 - The register set of the PHY containing the UTMI pad control registers.
11 Present if-and-only-if phy_type == utmi.
12 - phy_type : Should be one of "utmi", "ulpi" or "hsic".
13 - clocks : Defines the clocks listed in the clock-names property.
14 - clock-names : The following clock names must be present:
15 - reg: The clock needed to access the PHY's own registers. This is the
16 associated EHCI controller's clock. Always present.
17 - pll_u: PLL_U. Always present.
18 - timer: The timeout clock (clk_m). Present if phy_type == utmi.
19 - utmi-pads: The clock needed to access the UTMI pad control registers.
20 Present if phy_type == utmi.
21 - ulpi-link: The clock Tegra provides to the ULPI PHY (cdev2).
22 Present if phy_type == ulpi, and ULPI link mode is in use.
9 23
10Required properties for phy_type == ulpi: 24Required properties for phy_type == ulpi:
11 - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. 25 - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
12 26
27Required PHY timing params for utmi phy:
28 - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before
29 start of sync launches RxActive
30 - nvidia,elastic-limit : Variable FIFO Depth of elastic input store
31 - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait
32 before declare IDLE.
33 - nvidia,term-range-adj : Range adjusment on terminations
34 - nvidia,xcvr-setup : HS driver output control
35 - nvidia,xcvr-lsfslew : LS falling slew rate control.
36 - nvidia,xcvr-lsrslew : LS rising slew rate control.
37
13Optional properties: 38Optional properties:
14 - nvidia,has-legacy-mode : boolean indicates whether this controller can 39 - nvidia,has-legacy-mode : boolean indicates whether this controller can
15 operate in legacy mode (as APX 2500 / 2600). In legacy mode some 40 operate in legacy mode (as APX 2500 / 2600). In legacy mode some
16 registers are accessed through the APB_MISC base address instead of 41 registers are accessed through the APB_MISC base address instead of
17 the USB controller. \ No newline at end of file 42 the USB controller.
43 - nvidia,is-wired : boolean. Indicates whether we can do certain kind of power
44 optimizations for the devices that are always connected. e.g. modem.
45 - dr_mode : dual role mode. Indicates the working mode for the PHY. Can be
46 "host", "peripheral", or "otg". Defaults to "host" if not defined.
47 host means this is a host controller
48 peripheral means it is device controller
49 otg means it can operate as either ("on the go")
50
51Required properties for dr_mode == otg:
52 - vbus-supply: regulator for VBUS
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt
index d4769f343d6c..57e71f6817d0 100644
--- a/Documentation/devicetree/bindings/usb/omap-usb.txt
+++ b/Documentation/devicetree/bindings/usb/omap-usb.txt
@@ -16,7 +16,7 @@ OMAP MUSB GLUE
16 specifying ULPI and UTMI respectively. 16 specifying ULPI and UTMI respectively.
17 - mode : Should be "3" to represent OTG. "1" signifies HOST and "2" 17 - mode : Should be "3" to represent OTG. "1" signifies HOST and "2"
18 represents PERIPHERAL. 18 represents PERIPHERAL.
19 - power : Should be "50". This signifies the controller can supply upto 19 - power : Should be "50". This signifies the controller can supply up to
20 100mA when operating in host mode. 20 100mA when operating in host mode.
21 - usb-phy : the phandle for the PHY device 21 - usb-phy : the phandle for the PHY device
22 22
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt
index 6813a715fc7d..8c5be48b43c8 100644
--- a/Documentation/devicetree/bindings/usb/usb3503.txt
+++ b/Documentation/devicetree/bindings/usb/usb3503.txt
@@ -4,6 +4,10 @@ Required properties:
4- compatible: Should be "smsc,usb3503". 4- compatible: Should be "smsc,usb3503".
5- reg: Specifies the i2c slave address, it should be 0x08. 5- reg: Specifies the i2c slave address, it should be 0x08.
6- connect-gpios: Should specify GPIO for connect. 6- connect-gpios: Should specify GPIO for connect.
7- disabled-ports: Should specify the ports unused.
8 '1' or '2' or '3' are availe for this property to describe the port
9 number. 1~3 property values are possible to be desribed.
10 Do not describe this property if all ports have to be enabled.
7- intn-gpios: Should specify GPIO for interrupt. 11- intn-gpios: Should specify GPIO for interrupt.
8- reset-gpios: Should specify GPIO for reset. 12- reset-gpios: Should specify GPIO for reset.
9- initial-mode: Should specify initial mode. 13- initial-mode: Should specify initial mode.
@@ -14,6 +18,7 @@ Examples:
14 compatible = "smsc,usb3503"; 18 compatible = "smsc,usb3503";
15 reg = <0x08>; 19 reg = <0x08>;
16 connect-gpios = <&gpx3 0 1>; 20 connect-gpios = <&gpx3 0 1>;
21 disabled-ports = <2 3>;
17 intn-gpios = <&gpx3 4 1>; 22 intn-gpios = <&gpx3 4 1>;
18 reset-gpios = <&gpx3 5 1>; 23 reset-gpios = <&gpx3 5 1>;
19 initial-mode = <1>; 24 initial-mode = <1>;
diff --git a/Documentation/devicetree/bindings/usb/ux500-usb.txt b/Documentation/devicetree/bindings/usb/ux500-usb.txt
new file mode 100644
index 000000000000..330d6ec15401
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ux500-usb.txt
@@ -0,0 +1,50 @@
1Ux500 MUSB
2
3Required properties:
4 - compatible : Should be "stericsson,db8500-musb"
5 - reg : Offset and length of registers
6 - interrupts : Interrupt; mode, number and trigger
7 - dr_mode : Dual-role; either host mode "host", peripheral mode "peripheral"
8 or both "otg"
9
10Optional properties:
11 - dmas : A list of dma channels;
12 dma-controller, event-line, fixed-channel, flags
13 - dma-names : An ordered list of channel names affiliated to the above
14
15Example:
16
17usb_per5@a03e0000 {
18 compatible = "stericsson,db8500-musb", "mentor,musb";
19 reg = <0xa03e0000 0x10000>;
20 interrupts = <0 23 0x4>;
21 interrupt-names = "mc";
22
23 dr_mode = "otg";
24
25 dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */
26 <&dma 38 0 0x0>, /* Logical - MemToDev */
27 <&dma 37 0 0x2>, /* Logical - DevToMem */
28 <&dma 37 0 0x0>, /* Logical - MemToDev */
29 <&dma 36 0 0x2>, /* Logical - DevToMem */
30 <&dma 36 0 0x0>, /* Logical - MemToDev */
31 <&dma 19 0 0x2>, /* Logical - DevToMem */
32 <&dma 19 0 0x0>, /* Logical - MemToDev */
33 <&dma 18 0 0x2>, /* Logical - DevToMem */
34 <&dma 18 0 0x0>, /* Logical - MemToDev */
35 <&dma 17 0 0x2>, /* Logical - DevToMem */
36 <&dma 17 0 0x0>, /* Logical - MemToDev */
37 <&dma 16 0 0x2>, /* Logical - DevToMem */
38 <&dma 16 0 0x0>, /* Logical - MemToDev */
39 <&dma 39 0 0x2>, /* Logical - DevToMem */
40 <&dma 39 0 0x0>; /* Logical - MemToDev */
41
42 dma-names = "iep_1_9", "oep_1_9",
43 "iep_2_10", "oep_2_10",
44 "iep_3_11", "oep_3_11",
45 "iep_4_12", "oep_4_12",
46 "iep_5_13", "oep_5_13",
47 "iep_6_14", "oep_6_14",
48 "iep_7_15", "oep_7_15",
49 "iep_8", "oep_8";
50};
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 6931c4348d24..948f61561ffa 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -31,6 +31,7 @@ idt Integrated Device Technologies, Inc.
31img Imagination Technologies Ltd. 31img Imagination Technologies Ltd.
32intercontrol Inter Control Group 32intercontrol Inter Control Group
33linux Linux-specific binding 33linux Linux-specific binding
34lsi LSI Corp. (LSI Logic)
34marvell Marvell Technology Group Ltd. 35marvell Marvell Technology Group Ltd.
35maxim Maxim Integrated Products 36maxim Maxim Integrated Products
36mosaixtech Mosaix Technologies, Inc. 37mosaixtech Mosaix Technologies, Inc.
@@ -57,8 +58,10 @@ snps Synopsys, Inc.
57st STMicroelectronics 58st STMicroelectronics
58ste ST-Ericsson 59ste ST-Ericsson
59stericsson ST-Ericsson 60stericsson ST-Ericsson
61toumaz Toumaz
60ti Texas Instruments 62ti Texas Instruments
61toshiba Toshiba Corporation 63toshiba Toshiba Corporation
64v3 V3 Semiconductor
62via VIA Technologies, Inc. 65via VIA Technologies, Inc.
63wlf Wolfson Microelectronics 66wlf Wolfson Microelectronics
64wm Wondermedia Technologies, Inc. 67wm Wondermedia Technologies, Inc.
diff --git a/Documentation/devicetree/bindings/video/exynos_dp.txt b/Documentation/devicetree/bindings/video/exynos_dp.txt
index c60da67a5d76..84f10c16cb38 100644
--- a/Documentation/devicetree/bindings/video/exynos_dp.txt
+++ b/Documentation/devicetree/bindings/video/exynos_dp.txt
@@ -21,6 +21,10 @@ Required properties for dp-controller:
21 of memory mapped region. 21 of memory mapped region.
22 -interrupts: 22 -interrupts:
23 interrupt combiner values. 23 interrupt combiner values.
24 -clocks:
25 from common clock binding: handle to dp clock.
26 -clock-names:
27 from common clock binding: Shall be "dp".
24 -interrupt-parent: 28 -interrupt-parent:
25 phandle to Interrupt combiner node. 29 phandle to Interrupt combiner node.
26 -samsung,color-space: 30 -samsung,color-space:
@@ -61,6 +65,8 @@ SOC specific portion:
61 reg = <0x145b0000 0x10000>; 65 reg = <0x145b0000 0x10000>;
62 interrupts = <10 3>; 66 interrupts = <10 3>;
63 interrupt-parent = <&combiner>; 67 interrupt-parent = <&combiner>;
68 clocks = <&clock 342>;
69 clock-names = "dp";
64 70
65 dptx-phy { 71 dptx-phy {
66 reg = <0x10040720>; 72 reg = <0x10040720>;
diff --git a/Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt b/Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt
new file mode 100644
index 000000000000..8ffb88e39e76
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt
@@ -0,0 +1,19 @@
1ST-Ericsson COH 901 327 Watchdog timer
2
3Required properties:
4- compatible: must be "stericsson,coh901327".
5- reg: physical base address of the controller and length of memory mapped
6 region.
7- interrupts: the interrupt used for the watchdog timeout warning.
8
9Optional properties:
10- timeout-sec: contains the watchdog timeout in seconds.
11
12Example:
13
14watchdog: watchdog@c0012000 {
15 compatible = "stericsson,coh901327";
16 reg = <0xc0012000 0x1000>;
17 interrupts = <3>;
18 timeout-sec = <60>;
19};
diff --git a/Documentation/devicetree/usage-model.txt b/Documentation/devicetree/usage-model.txt
index 0efedaad5165..2b6b3d3f0388 100644
--- a/Documentation/devicetree/usage-model.txt
+++ b/Documentation/devicetree/usage-model.txt
@@ -106,17 +106,18 @@ In the majority of cases, the machine identity is irrelevant, and the
106kernel will instead select setup code based on the machine's core 106kernel will instead select setup code based on the machine's core
107CPU or SoC. On ARM for example, setup_arch() in 107CPU or SoC. On ARM for example, setup_arch() in
108arch/arm/kernel/setup.c will call setup_machine_fdt() in 108arch/arm/kernel/setup.c will call setup_machine_fdt() in
109arch/arm/kernel/devicetree.c which searches through the machine_desc 109arch/arm/kernel/devtree.c which searches through the machine_desc
110table and selects the machine_desc which best matches the device tree 110table and selects the machine_desc which best matches the device tree
111data. It determines the best match by looking at the 'compatible' 111data. It determines the best match by looking at the 'compatible'
112property in the root device tree node, and comparing it with the 112property in the root device tree node, and comparing it with the
113dt_compat list in struct machine_desc. 113dt_compat list in struct machine_desc (which is defined in
114arch/arm/include/asm/mach/arch.h if you're curious).
114 115
115The 'compatible' property contains a sorted list of strings starting 116The 'compatible' property contains a sorted list of strings starting
116with the exact name of the machine, followed by an optional list of 117with the exact name of the machine, followed by an optional list of
117boards it is compatible with sorted from most compatible to least. For 118boards it is compatible with sorted from most compatible to least. For
118example, the root compatible properties for the TI BeagleBoard and its 119example, the root compatible properties for the TI BeagleBoard and its
119successor, the BeagleBoard xM board might look like: 120successor, the BeagleBoard xM board might look like, respectively:
120 121
121 compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3"; 122 compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3";
122 compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3"; 123 compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3";
@@ -161,7 +162,7 @@ cases.
161 162
162Instead, the compatible list allows a generic machine_desc to provide 163Instead, the compatible list allows a generic machine_desc to provide
163support for a wide common set of boards by specifying "less 164support for a wide common set of boards by specifying "less
164compatible" value in the dt_compat list. In the example above, 165compatible" values in the dt_compat list. In the example above,
165generic board support can claim compatibility with "ti,omap3" or 166generic board support can claim compatibility with "ti,omap3" or
166"ti,omap3450". If a bug was discovered on the original beagleboard 167"ti,omap3450". If a bug was discovered on the original beagleboard
167that required special workaround code during early boot, then a new 168that required special workaround code during early boot, then a new
@@ -377,7 +378,7 @@ platform_devices as more platform_devices is a common pattern, and the
377device tree support code reflects that and makes the above example 378device tree support code reflects that and makes the above example
378simpler. The second argument to of_platform_populate() is an 379simpler. The second argument to of_platform_populate() is an
379of_device_id table, and any node that matches an entry in that table 380of_device_id table, and any node that matches an entry in that table
380will also get its child nodes registered. In the tegra case, the code 381will also get its child nodes registered. In the Tegra case, the code
381can look something like this: 382can look something like this:
382 383
383static void __init harmony_init_machine(void) 384static void __init harmony_init_machine(void)