diff options
Diffstat (limited to 'Documentation/devicetree')
149 files changed, 3680 insertions, 376 deletions
diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt index 20746e5abe6f..06fc7602593a 100644 --- a/Documentation/devicetree/bindings/arm/arch_timer.txt +++ b/Documentation/devicetree/bindings/arm/arch_timer.txt | |||
@@ -1,10 +1,14 @@ | |||
1 | * ARM architected timer | 1 | * ARM architected timer |
2 | 2 | ||
3 | ARM cores may have a per-core architected timer, which provides per-cpu timers. | 3 | ARM cores may have a per-core architected timer, which provides per-cpu timers, |
4 | or a memory mapped architected timer, which provides up to 8 frames with a | ||
5 | physical and optional virtual timer per frame. | ||
4 | 6 | ||
5 | The timer is attached to a GIC to deliver its per-processor interrupts. | 7 | The per-core architected timer is attached to a GIC to deliver its |
8 | per-processor interrupts via PPIs. The memory mapped timer is attached to a GIC | ||
9 | to deliver its interrupts via SPIs. | ||
6 | 10 | ||
7 | ** Timer node properties: | 11 | ** CP15 Timer node properties: |
8 | 12 | ||
9 | - compatible : Should at least contain one of | 13 | - compatible : Should at least contain one of |
10 | "arm,armv7-timer" | 14 | "arm,armv7-timer" |
@@ -26,3 +30,52 @@ Example: | |||
26 | <1 10 0xf08>; | 30 | <1 10 0xf08>; |
27 | clock-frequency = <100000000>; | 31 | clock-frequency = <100000000>; |
28 | }; | 32 | }; |
33 | |||
34 | ** Memory mapped timer node properties: | ||
35 | |||
36 | - compatible : Should at least contain "arm,armv7-timer-mem". | ||
37 | |||
38 | - clock-frequency : The frequency of the main counter, in Hz. Optional. | ||
39 | |||
40 | - reg : The control frame base address. | ||
41 | |||
42 | Note that #address-cells, #size-cells, and ranges shall be present to ensure | ||
43 | the CPU can address a frame's registers. | ||
44 | |||
45 | A timer node has up to 8 frame sub-nodes, each with the following properties: | ||
46 | |||
47 | - frame-number: 0 to 7. | ||
48 | |||
49 | - interrupts : Interrupt list for physical and virtual timers in that order. | ||
50 | The virtual timer interrupt is optional. | ||
51 | |||
52 | - reg : The first and second view base addresses in that order. The second view | ||
53 | base address is optional. | ||
54 | |||
55 | - status : "disabled" indicates the frame is not available for use. Optional. | ||
56 | |||
57 | Example: | ||
58 | |||
59 | timer@f0000000 { | ||
60 | compatible = "arm,armv7-timer-mem"; | ||
61 | #address-cells = <1>; | ||
62 | #size-cells = <1>; | ||
63 | ranges; | ||
64 | reg = <0xf0000000 0x1000>; | ||
65 | clock-frequency = <50000000>; | ||
66 | |||
67 | frame@f0001000 { | ||
68 | frame-number = <0> | ||
69 | interrupts = <0 13 0x8>, | ||
70 | <0 14 0x8>; | ||
71 | reg = <0xf0001000 0x1000>, | ||
72 | <0xf0002000 0x1000>; | ||
73 | }; | ||
74 | |||
75 | frame@f0003000 { | ||
76 | frame-number = <1> | ||
77 | interrupts = <0 15 0x8>; | ||
78 | reg = <0xf0003000 0x1000>; | ||
79 | status = "disabled"; | ||
80 | }; | ||
81 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/atmel-adc.txt b/Documentation/devicetree/bindings/arm/atmel-adc.txt index 16769d9cedd6..723c205cb10d 100644 --- a/Documentation/devicetree/bindings/arm/atmel-adc.txt +++ b/Documentation/devicetree/bindings/arm/atmel-adc.txt | |||
@@ -1,18 +1,15 @@ | |||
1 | * AT91's Analog to Digital Converter (ADC) | 1 | * AT91's Analog to Digital Converter (ADC) |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "atmel,at91sam9260-adc" | 4 | - compatible: Should be "atmel,<chip>-adc" |
5 | <chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5" | ||
5 | - reg: Should contain ADC registers location and length | 6 | - reg: Should contain ADC registers location and length |
6 | - interrupts: Should contain the IRQ line for the ADC | 7 | - interrupts: Should contain the IRQ line for the ADC |
7 | - atmel,adc-channel-base: Offset of the first channel data register | ||
8 | - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this | 8 | - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this |
9 | device | 9 | device |
10 | - atmel,adc-drdy-mask: Mask of the DRDY interruption in the ADC | ||
11 | - atmel,adc-num-channels: Number of channels available in the ADC | 10 | - atmel,adc-num-channels: Number of channels available in the ADC |
12 | - atmel,adc-startup-time: Startup Time of the ADC in microseconds as | 11 | - atmel,adc-startup-time: Startup Time of the ADC in microseconds as |
13 | defined in the datasheet | 12 | defined in the datasheet |
14 | - atmel,adc-status-register: Offset of the Interrupt Status Register | ||
15 | - atmel,adc-trigger-register: Offset of the Trigger Register | ||
16 | - atmel,adc-vref: Reference voltage in millivolts for the conversions | 13 | - atmel,adc-vref: Reference voltage in millivolts for the conversions |
17 | - atmel,adc-res: List of resolution in bits supported by the ADC. List size | 14 | - atmel,adc-res: List of resolution in bits supported by the ADC. List size |
18 | must be two at least. | 15 | must be two at least. |
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt b/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt index fb7b5cd2652f..0ff6560e6094 100644 --- a/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt +++ b/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt | |||
@@ -6,4 +6,5 @@ bcm11351, bcm28145, bcm28155 SoCs) shall have the following properties: | |||
6 | 6 | ||
7 | Required root node property: | 7 | Required root node property: |
8 | 8 | ||
9 | compatible = "bcm,bcm11351"; | 9 | compatible = "brcm,bcm11351"; |
10 | DEPRECATED: compatible = "bcm,bcm11351"; | ||
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt index 59fa6e68d4f6..17d88b233d1b 100644 --- a/Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt +++ b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt | |||
@@ -4,14 +4,15 @@ This timer is used in the following Broadcom SoCs: | |||
4 | BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 | 4 | BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : "bcm,kona-timer" | 7 | - compatible : "brcm,kona-timer" |
8 | - DEPRECATED: compatible : "bcm,kona-timer" | ||
8 | - reg : Register range for the timer | 9 | - reg : Register range for the timer |
9 | - interrupts : interrupt for the timer | 10 | - interrupts : interrupt for the timer |
10 | - clock-frequency: frequency that the clock operates | 11 | - clock-frequency: frequency that the clock operates |
11 | 12 | ||
12 | Example: | 13 | Example: |
13 | timer@35006000 { | 14 | timer@35006000 { |
14 | compatible = "bcm,kona-timer"; | 15 | compatible = "brcm,kona-timer"; |
15 | reg = <0x35006000 0x1000>; | 16 | reg = <0x35006000 0x1000>; |
16 | interrupts = <0x0 7 0x4>; | 17 | interrupts = <0x0 7 0x4>; |
17 | clock-frequency = <32768>; | 18 | clock-frequency = <32768>; |
diff --git a/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt b/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt new file mode 100644 index 000000000000..2b86a00e351d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Broadcom Kona Family Watchdog Timer | ||
2 | ----------------------------------- | ||
3 | |||
4 | This watchdog timer is used in the following Broadcom SoCs: | ||
5 | BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 | ||
6 | |||
7 | Required properties: | ||
8 | - compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt"; | ||
9 | - reg: memory address & range | ||
10 | |||
11 | Example: | ||
12 | watchdog@35002f40 { | ||
13 | compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt"; | ||
14 | reg = <0x35002f40 0x6c>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt index 69ddf9fad2dc..c0c7626fd0ff 100644 --- a/Documentation/devicetree/bindings/arm/l2cc.txt +++ b/Documentation/devicetree/bindings/arm/l2cc.txt | |||
@@ -16,9 +16,11 @@ 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 | 19 | "brcm,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 | 20 | offset needs to be added to the address before passing down to the L2 |
21 | cache controller | 21 | cache controller |
22 | "bcm,bcm11351-a2-pl310-cache": DEPRECATED by | ||
23 | "brcm,bcm11351-a2-pl310-cache" | ||
22 | - cache-unified : Specifies the cache is a unified cache. | 24 | - cache-unified : Specifies the cache is a unified cache. |
23 | - cache-level : Should be set to 2 for a level 2 cache. | 25 | - cache-level : Should be set to 2 for a level 2 cache. |
24 | - reg : Physical base address and size of cache controller's memory mapped | 26 | - reg : Physical base address and size of cache controller's memory mapped |
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 6d498c758b45..91b7049affa1 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -59,3 +59,6 @@ Boards: | |||
59 | 59 | ||
60 | - AM43x EPOS EVM | 60 | - AM43x EPOS EVM |
61 | compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43" | 61 | compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43" |
62 | |||
63 | - DRA7 EVM: Software Developement Board for DRA7XX | ||
64 | compatible = "ti,dra7-evm", "ti,dra7" | ||
diff --git a/Documentation/devicetree/bindings/arm/ste-u300.txt b/Documentation/devicetree/bindings/arm/ste-u300.txt index 69b5ab0b5f4b..d11d80006a19 100644 --- a/Documentation/devicetree/bindings/arm/ste-u300.txt +++ b/Documentation/devicetree/bindings/arm/ste-u300.txt | |||
@@ -22,7 +22,7 @@ This contains the board-specific information. | |||
22 | - compatible: must be "stericsson,s365". | 22 | - compatible: must be "stericsson,s365". |
23 | - vana15-supply: the regulator supplying the 1.5V to drive the | 23 | - vana15-supply: the regulator supplying the 1.5V to drive the |
24 | board. | 24 | board. |
25 | - syscon: a pointer to the syscon node so we can acccess the | 25 | - syscon: a pointer to the syscon node so we can access the |
26 | syscon registers to set the board as self-powered. | 26 | syscon registers to set the board as self-powered. |
27 | 27 | ||
28 | Example: | 28 | Example: |
diff --git a/Documentation/devicetree/bindings/arm/vexpress-scc.txt b/Documentation/devicetree/bindings/arm/vexpress-scc.txt new file mode 100644 index 000000000000..ae5043e42e5d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/vexpress-scc.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | ARM Versatile Express Serial Configuration Controller | ||
2 | ----------------------------------------------------- | ||
3 | |||
4 | Test chips for ARM Versatile Express platform implement SCC (Serial | ||
5 | Configuration Controller) interface, used to set initial conditions | ||
6 | for the test chip. | ||
7 | |||
8 | In some cases its registers are also mapped in normal address space | ||
9 | and can be used to obtain runtime information about the chip internals | ||
10 | (like silicon temperature sensors) and as interface to other subsystems | ||
11 | like platform configuration control and power management. | ||
12 | |||
13 | Required properties: | ||
14 | |||
15 | - compatible value: "arm,vexpress-scc,<model>", "arm,vexpress-scc"; | ||
16 | where <model> is the full tile model name (as used | ||
17 | in the tile's Technical Reference Manual), | ||
18 | eg. for Coretile Express A15x2 A7x3 (V2P-CA15_A7): | ||
19 | compatible = "arm,vexpress-scc,v2p-ca15_a7", "arm,vexpress-scc"; | ||
20 | |||
21 | Optional properties: | ||
22 | |||
23 | - reg: when the SCC is memory mapped, physical address and size of the | ||
24 | registers window | ||
25 | - interrupts: when the SCC can generate a system-level interrupt | ||
26 | |||
27 | Example: | ||
28 | |||
29 | scc@7fff0000 { | ||
30 | compatible = "arm,vexpress-scc,v2p-ca15_a7", "arm,vexpress-scc"; | ||
31 | reg = <0 0x7fff0000 0 0x1000>; | ||
32 | interrupts = <0 95 4>; | ||
33 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt b/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt index 9cf3f25544c7..5580e9c4bd85 100644 --- a/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt +++ b/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt | |||
@@ -32,8 +32,8 @@ numbers - see motherboard's TRM for more details. | |||
32 | The node describing a config device must refer to the sysreg node via | 32 | The node describing a config device must refer to the sysreg node via |
33 | "arm,vexpress,config-bridge" phandle (can be also defined in the node's | 33 | "arm,vexpress,config-bridge" phandle (can be also defined in the node's |
34 | parent) and relies on the board topology properties - see main vexpress | 34 | parent) and relies on the board topology properties - see main vexpress |
35 | node documentation for more details. It must must also define the | 35 | node documentation for more details. It must also define the following |
36 | following property: | 36 | property: |
37 | - arm,vexpress-sysreg,func : must contain two cells: | 37 | - arm,vexpress-sysreg,func : must contain two cells: |
38 | - first cell defines function number (eg. 1 for clock generator, | 38 | - first cell defines function number (eg. 1 for clock generator, |
39 | 2 for voltage regulators etc.) | 39 | 2 for voltage regulators etc.) |
diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt index 3ec0c5c4f0e9..89de1564950c 100644 --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt +++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt | |||
@@ -4,27 +4,17 @@ SATA nodes are defined to describe on-chip Serial ATA controllers. | |||
4 | Each SATA controller should have its own node. | 4 | Each SATA controller should have its own node. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : compatible list, contains "calxeda,hb-ahci" or "snps,spear-ahci" | 7 | - compatible : compatible list, contains "snps,spear-ahci" |
8 | - interrupts : <interrupt mapping for SATA IRQ> | 8 | - interrupts : <interrupt mapping for SATA IRQ> |
9 | - reg : <registers mapping> | 9 | - reg : <registers mapping> |
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | - calxeda,port-phys: phandle-combophy and lane assignment, which maps each | ||
13 | SATA port to a combophy and a lane within that | ||
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. | ||
20 | - dma-coherent : Present if dma operations are coherent | 12 | - dma-coherent : Present if dma operations are coherent |
21 | 13 | ||
22 | Example: | 14 | Example: |
23 | sata@ffe08000 { | 15 | sata@ffe08000 { |
24 | compatible = "calxeda,hb-ahci"; | 16 | compatible = "snps,spear-ahci"; |
25 | reg = <0xffe08000 0x1000>; | 17 | reg = <0xffe08000 0x1000>; |
26 | interrupts = <115>; | 18 | interrupts = <115>; |
27 | calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1 | ||
28 | &combophy0 2 &combophy0 3>; | ||
29 | 19 | ||
30 | }; | 20 | }; |
diff --git a/Documentation/devicetree/bindings/ata/sata_highbank.txt b/Documentation/devicetree/bindings/ata/sata_highbank.txt new file mode 100644 index 000000000000..aa83407cb7a4 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/sata_highbank.txt | |||
@@ -0,0 +1,44 @@ | |||
1 | * Calxeda AHCI SATA Controller | ||
2 | |||
3 | SATA nodes are defined to describe on-chip Serial ATA controllers. | ||
4 | The Calxeda SATA controller mostly conforms to the AHCI interface | ||
5 | with some special extensions to add functionality. | ||
6 | Each SATA controller should have its own node. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible : compatible list, contains "calxeda,hb-ahci" | ||
10 | - interrupts : <interrupt mapping for SATA IRQ> | ||
11 | - reg : <registers mapping> | ||
12 | |||
13 | Optional properties: | ||
14 | - dma-coherent : Present if dma operations are coherent | ||
15 | - calxeda,port-phys : phandle-combophy and lane assignment, which maps each | ||
16 | SATA port to a combophy and a lane within that | ||
17 | combophy | ||
18 | - calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off, | ||
19 | which indicates that the driver supports SGPIO | ||
20 | indicator lights using the indicated GPIOs | ||
21 | - calxeda,led-order : a u32 array that map port numbers to offsets within the | ||
22 | SGPIO bitstream. | ||
23 | - calxeda,tx-atten : a u32 array that contains TX attenuation override | ||
24 | codes, one per port. The upper 3 bytes are always | ||
25 | 0 and thus ignored. | ||
26 | - calxeda,pre-clocks : a u32 that indicates the number of additional clock | ||
27 | cycles to transmit before sending an SGPIO pattern | ||
28 | - calxeda,post-clocks: a u32 that indicates the number of additional clock | ||
29 | cycles to transmit after sending an SGPIO pattern | ||
30 | |||
31 | Example: | ||
32 | sata@ffe08000 { | ||
33 | compatible = "calxeda,hb-ahci"; | ||
34 | reg = <0xffe08000 0x1000>; | ||
35 | interrupts = <115>; | ||
36 | dma-coherent; | ||
37 | calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1 | ||
38 | &combophy0 2 &combophy0 3>; | ||
39 | calxeda,sgpio-gpio =<&gpioh 5 1 &gpioh 6 1 &gpioh 7 1>; | ||
40 | calxeda,led-order = <4 0 1 2 3>; | ||
41 | calxeda,tx-atten = <0xff 22 0xff 0xff 23>; | ||
42 | calxeda,pre-clocks = <10>; | ||
43 | calxeda,post-clocks = <0>; | ||
44 | }; | ||
diff --git a/Documentation/devicetree/bindings/bus/imx-weim.txt b/Documentation/devicetree/bindings/bus/imx-weim.txt index cedc2a9c4785..0fd76c405208 100644 --- a/Documentation/devicetree/bindings/bus/imx-weim.txt +++ b/Documentation/devicetree/bindings/bus/imx-weim.txt | |||
@@ -8,7 +8,7 @@ The actual devices are instantiated from the child nodes of a WEIM node. | |||
8 | 8 | ||
9 | Required properties: | 9 | Required properties: |
10 | 10 | ||
11 | - compatible: Should be set to "fsl,imx6q-weim" | 11 | - compatible: Should be set to "fsl,<soc>-weim" |
12 | - reg: A resource specifier for the register space | 12 | - reg: A resource specifier for the register space |
13 | (see the example below) | 13 | (see the example below) |
14 | - clocks: the clock, see the example below. | 14 | - clocks: the clock, see the example below. |
@@ -21,11 +21,18 @@ Required properties: | |||
21 | 21 | ||
22 | Timing property for child nodes. It is mandatory, not optional. | 22 | Timing property for child nodes. It is mandatory, not optional. |
23 | 23 | ||
24 | - fsl,weim-cs-timing: The timing array, contains 6 timing values for the | 24 | - fsl,weim-cs-timing: The timing array, contains timing values for the |
25 | child node. We can get the CS index from the child | 25 | child node. We can get the CS index from the child |
26 | node's "reg" property. This property contains the values | 26 | node's "reg" property. The number of registers depends |
27 | for the registers EIM_CSnGCR1, EIM_CSnGCR2, EIM_CSnRCR1, | 27 | on the selected chip. |
28 | EIM_CSnRCR2, EIM_CSnWCR1, EIM_CSnWCR2 in this order. | 28 | For i.MX1, i.MX21 ("fsl,imx1-weim") there are two |
29 | registers: CSxU, CSxL. | ||
30 | For i.MX25, i.MX27, i.MX31 and i.MX35 ("fsl,imx27-weim") | ||
31 | there are three registers: CSCRxU, CSCRxL, CSCRxA. | ||
32 | For i.MX50, i.MX53 ("fsl,imx50-weim"), | ||
33 | i.MX51 ("fsl,imx51-weim") and i.MX6Q ("fsl,imx6q-weim") | ||
34 | there are six registers: CSxGCR1, CSxGCR2, CSxRCR1, | ||
35 | CSxRCR2, CSxWCR1, CSxWCR2. | ||
29 | 36 | ||
30 | Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM: | 37 | Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM: |
31 | 38 | ||
diff --git a/Documentation/devicetree/bindings/bus/mvebu-mbus.txt b/Documentation/devicetree/bindings/bus/mvebu-mbus.txt new file mode 100644 index 000000000000..7586fb68c072 --- /dev/null +++ b/Documentation/devicetree/bindings/bus/mvebu-mbus.txt | |||
@@ -0,0 +1,276 @@ | |||
1 | |||
2 | * Marvell MBus | ||
3 | |||
4 | Required properties: | ||
5 | |||
6 | - compatible: Should be set to one of the following: | ||
7 | marvell,armada370-mbus | ||
8 | marvell,armadaxp-mbus | ||
9 | marvell,armada370-mbus | ||
10 | marvell,armadaxp-mbus | ||
11 | marvell,kirkwood-mbus | ||
12 | marvell,dove-mbus | ||
13 | marvell,orion5x-88f5281-mbus | ||
14 | marvell,orion5x-88f5182-mbus | ||
15 | marvell,orion5x-88f5181-mbus | ||
16 | marvell,orion5x-88f6183-mbus | ||
17 | marvell,mv78xx0-mbus | ||
18 | |||
19 | - address-cells: Must be '2'. The first cell for the MBus ID encoding, | ||
20 | the second cell for the address offset within the window. | ||
21 | |||
22 | - size-cells: Must be '1'. | ||
23 | |||
24 | - ranges: Must be set up to provide a proper translation for each child. | ||
25 | See the examples below. | ||
26 | |||
27 | - controller: Contains a single phandle referring to the MBus controller | ||
28 | node. This allows to specify the node that contains the | ||
29 | registers that control the MBus, which is typically contained | ||
30 | within the internal register window (see below). | ||
31 | |||
32 | Optional properties: | ||
33 | |||
34 | - pcie-mem-aperture: This optional property contains the aperture for | ||
35 | the memory region of the PCIe driver. | ||
36 | If it's defined, it must encode the base address and | ||
37 | size for the address decoding windows allocated for | ||
38 | the PCIe memory region. | ||
39 | |||
40 | - pcie-io-aperture: Just as explained for the above property, this | ||
41 | optional property contains the aperture for the | ||
42 | I/O region of the PCIe driver. | ||
43 | |||
44 | * Marvell MBus controller | ||
45 | |||
46 | Required properties: | ||
47 | |||
48 | - compatible: Should be set to "marvell,mbus-controller". | ||
49 | |||
50 | - reg: Device's register space. | ||
51 | Two entries are expected (see the examples below): | ||
52 | the first one controls the devices decoding window and | ||
53 | the second one controls the SDRAM decoding window. | ||
54 | |||
55 | Example: | ||
56 | |||
57 | soc { | ||
58 | compatible = "marvell,armada370-mbus", "simple-bus"; | ||
59 | #address-cells = <2>; | ||
60 | #size-cells = <1>; | ||
61 | controller = <&mbusc>; | ||
62 | pcie-mem-aperture = <0xe0000000 0x8000000>; | ||
63 | pcie-io-aperture = <0xe8000000 0x100000>; | ||
64 | |||
65 | internal-regs { | ||
66 | compatible = "simple-bus"; | ||
67 | |||
68 | mbusc: mbus-controller@20000 { | ||
69 | compatible = "marvell,mbus-controller"; | ||
70 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
71 | }; | ||
72 | |||
73 | /* more children ...*/ | ||
74 | }; | ||
75 | }; | ||
76 | |||
77 | ** MBus address decoding window specification | ||
78 | |||
79 | The MBus children address space is comprised of two cells: the first one for | ||
80 | the window ID and the second one for the offset within the window. | ||
81 | In order to allow to describe valid and non-valid window entries, the | ||
82 | following encoding is used: | ||
83 | |||
84 | 0xSIAA0000 0x00oooooo | ||
85 | |||
86 | Where: | ||
87 | |||
88 | S = 0x0 for a MBus valid window | ||
89 | S = 0xf for a non-valid window (see below) | ||
90 | |||
91 | If S = 0x0, then: | ||
92 | |||
93 | I = 4-bit window target ID | ||
94 | AA = windpw attribute | ||
95 | |||
96 | If S = 0xf, then: | ||
97 | |||
98 | I = don't care | ||
99 | AA = 1 for internal register | ||
100 | |||
101 | Following the above encoding, for each ranges entry for a MBus valid window | ||
102 | (S = 0x0), an address decoding window is allocated. On the other side, | ||
103 | entries for translation that do not correspond to valid windows (S = 0xf) | ||
104 | are skipped. | ||
105 | |||
106 | soc { | ||
107 | compatible = "marvell,armada370-mbus", "simple-bus"; | ||
108 | #address-cells = <2>; | ||
109 | #size-cells = <1>; | ||
110 | controller = <&mbusc>; | ||
111 | |||
112 | ranges = <0xf0010000 0 0 0xd0000000 0x100000 | ||
113 | 0x01e00000 0 0 0xfff00000 0x100000>; | ||
114 | |||
115 | bootrom { | ||
116 | compatible = "marvell,bootrom"; | ||
117 | reg = <0x01e00000 0 0x100000>; | ||
118 | }; | ||
119 | |||
120 | /* other children */ | ||
121 | ... | ||
122 | |||
123 | internal-regs { | ||
124 | compatible = "simple-bus"; | ||
125 | ranges = <0 0xf0010000 0 0x100000>; | ||
126 | |||
127 | mbusc: mbus-controller@20000 { | ||
128 | compatible = "marvell,mbus-controller"; | ||
129 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
130 | }; | ||
131 | |||
132 | /* more children ...*/ | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | In the shown example, the translation entry in the 'ranges' property is what | ||
137 | makes the MBus driver create a static decoding window for the corresponding | ||
138 | given child device. Note that the binding does not require child nodes to be | ||
139 | present. Of course, child nodes are needed to probe the devices. | ||
140 | |||
141 | Since each window is identified by its target ID and attribute ID there's | ||
142 | a special macro that can be use to simplify the translation entries: | ||
143 | |||
144 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | ||
145 | |||
146 | Using this macro, the above example would be: | ||
147 | |||
148 | soc { | ||
149 | compatible = "marvell,armada370-mbus", "simple-bus"; | ||
150 | #address-cells = <2>; | ||
151 | #size-cells = <1>; | ||
152 | controller = <&mbusc>; | ||
153 | |||
154 | ranges = < MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 | ||
155 | MBUS_ID(0x01, 0xe0) 0 0 0xfff00000 0x100000>; | ||
156 | |||
157 | bootrom { | ||
158 | compatible = "marvell,bootrom"; | ||
159 | reg = <MBUS_ID(0x01, 0xe0) 0 0x100000>; | ||
160 | }; | ||
161 | |||
162 | /* other children */ | ||
163 | ... | ||
164 | |||
165 | internal-regs { | ||
166 | compatible = "simple-bus"; | ||
167 | #address-cells = <1>; | ||
168 | #size-cells = <1>; | ||
169 | ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; | ||
170 | |||
171 | mbusc: mbus-controller@20000 { | ||
172 | compatible = "marvell,mbus-controller"; | ||
173 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
174 | }; | ||
175 | |||
176 | /* other children */ | ||
177 | ... | ||
178 | }; | ||
179 | }; | ||
180 | |||
181 | |||
182 | ** About the window base address | ||
183 | |||
184 | Remember the MBus controller allows a great deal of flexibility for choosing | ||
185 | the decoding window base address. When planning the device tree layout it's | ||
186 | possible to choose any address as the base address, provided of course there's | ||
187 | a region large enough available, and with the required alignment. | ||
188 | |||
189 | Yet in other words: there's nothing preventing us from setting a base address | ||
190 | of 0xf0000000, or 0xd0000000 for the NOR device shown above, if such region is | ||
191 | unused. | ||
192 | |||
193 | ** Window allocation policy | ||
194 | |||
195 | The mbus-node ranges property defines a set of mbus windows that are expected | ||
196 | to be set by the operating system and that are guaranteed to be free of overlaps | ||
197 | with one another or with the system memory ranges. | ||
198 | |||
199 | Each entry in the property refers to exactly one window. If the operating system | ||
200 | choses to use a different set of mbus windows, it must ensure that any address | ||
201 | translations performed from downstream devices are adapted accordingly. | ||
202 | |||
203 | The operating system may insert additional mbus windows that do not conflict | ||
204 | with the ones listed in the ranges, e.g. for mapping PCIe devices. | ||
205 | As a special case, the internal register window must be set up by the boot | ||
206 | loader at the address listed in the ranges property, since access to that region | ||
207 | is needed to set up the other windows. | ||
208 | |||
209 | ** Example | ||
210 | |||
211 | See the example below, where a more complete device tree is shown: | ||
212 | |||
213 | soc { | ||
214 | compatible = "marvell,armadaxp-mbus", "simple-bus"; | ||
215 | controller = <&mbusc>; | ||
216 | |||
217 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 /* internal-regs */ | ||
218 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | ||
219 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>; | ||
220 | |||
221 | bootrom { | ||
222 | compatible = "marvell,bootrom"; | ||
223 | reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; | ||
224 | }; | ||
225 | |||
226 | devbus-bootcs { | ||
227 | status = "okay"; | ||
228 | ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>; | ||
229 | |||
230 | /* NOR */ | ||
231 | nor { | ||
232 | compatible = "cfi-flash"; | ||
233 | reg = <0 0x8000000>; | ||
234 | bank-width = <2>; | ||
235 | }; | ||
236 | }; | ||
237 | |||
238 | pcie-controller { | ||
239 | compatible = "marvell,armada-xp-pcie"; | ||
240 | status = "okay"; | ||
241 | device_type = "pci"; | ||
242 | |||
243 | #address-cells = <3>; | ||
244 | #size-cells = <2>; | ||
245 | |||
246 | ranges = | ||
247 | <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ | ||
248 | 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */ | ||
249 | 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */ | ||
250 | 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */ | ||
251 | 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */ | ||
252 | 0x82000800 0 0xe0000000 MBUS_ID(0x04, 0xe8) 0xe0000000 0 0x08000000 /* Port 0.0 MEM */ | ||
253 | 0x81000800 0 0 MBUS_ID(0x04, 0xe0) 0xe8000000 0 0x00100000 /* Port 0.0 IO */>; | ||
254 | |||
255 | |||
256 | pcie@1,0 { | ||
257 | /* Port 0, Lane 0 */ | ||
258 | status = "okay"; | ||
259 | }; | ||
260 | }; | ||
261 | |||
262 | internal-regs { | ||
263 | compatible = "simple-bus"; | ||
264 | #address-cells = <1>; | ||
265 | #size-cells = <1>; | ||
266 | ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; | ||
267 | |||
268 | mbusc: mbus-controller@20000 { | ||
269 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
270 | }; | ||
271 | |||
272 | interrupt-controller@20000 { | ||
273 | reg = <0x20a00 0x2d0>, <0x21070 0x58>; | ||
274 | }; | ||
275 | }; | ||
276 | }; | ||
diff --git a/Documentation/devicetree/bindings/c6x/dscr.txt b/Documentation/devicetree/bindings/c6x/dscr.txt index d847758f2b20..b0e97144cfb1 100644 --- a/Documentation/devicetree/bindings/c6x/dscr.txt +++ b/Documentation/devicetree/bindings/c6x/dscr.txt | |||
@@ -5,7 +5,7 @@ TI C6X SoCs contain a region of miscellaneous registers which provide various | |||
5 | function for SoC control or status. Details vary considerably among from SoC | 5 | function for SoC control or status. Details vary considerably among from SoC |
6 | to SoC with no two being alike. | 6 | to SoC with no two being alike. |
7 | 7 | ||
8 | In general, the Device State Configuraion Registers (DSCR) will provide one or | 8 | In general, the Device State Configuration Registers (DSCR) will provide one or |
9 | more configuration registers often protected by a lock register where one or | 9 | more configuration registers often protected by a lock register where one or |
10 | more key values must be written to a lock register in order to unlock the | 10 | more key values must be written to a lock register in order to unlock the |
11 | configuration register for writes. These configuration register may be used to | 11 | configuration register for writes. These configuration register may be used to |
diff --git a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt index a1201802f90d..75e2e1999f87 100644 --- a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt +++ b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | The Samsung Audio Subsystem clock controller generates and supplies clocks | 3 | The Samsung Audio Subsystem clock controller generates and supplies clocks |
4 | to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock | 4 | to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock |
5 | binding described here is applicable to all SoC's in Exynos family. | 5 | binding described here is applicable to all SoCs in Exynos family. |
6 | 6 | ||
7 | Required Properties: | 7 | Required Properties: |
8 | 8 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt index 14d5c2af26f4..c6bf8a6c8f52 100644 --- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt | |||
@@ -236,6 +236,7 @@ Exynos4 SoC and this is specified where applicable. | |||
236 | spi0_isp_sclk 380 Exynos4x12 | 236 | spi0_isp_sclk 380 Exynos4x12 |
237 | spi1_isp_sclk 381 Exynos4x12 | 237 | spi1_isp_sclk 381 Exynos4x12 |
238 | uart_isp_sclk 382 Exynos4x12 | 238 | uart_isp_sclk 382 Exynos4x12 |
239 | tmu_apbif 383 | ||
239 | 240 | ||
240 | [Mux Clocks] | 241 | [Mux Clocks] |
241 | 242 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt index 781a6276adf7..24765c146e31 100644 --- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt | |||
@@ -59,6 +59,9 @@ clock which they consume. | |||
59 | sclk_spi0 154 | 59 | sclk_spi0 154 |
60 | sclk_spi1 155 | 60 | sclk_spi1 155 |
61 | sclk_spi2 156 | 61 | sclk_spi2 156 |
62 | div_i2s1 157 | ||
63 | div_i2s2 158 | ||
64 | sclk_hdmiphy 159 | ||
62 | 65 | ||
63 | 66 | ||
64 | [Peripheral Clock Gates] | 67 | [Peripheral Clock Gates] |
@@ -154,7 +157,16 @@ clock which they consume. | |||
154 | dsim0 341 | 157 | dsim0 341 |
155 | dp 342 | 158 | dp 342 |
156 | mixer 343 | 159 | mixer 343 |
157 | hdmi 345 | 160 | hdmi 344 |
161 | g2d 345 | ||
162 | |||
163 | |||
164 | [Clock Muxes] | ||
165 | |||
166 | Clock ID | ||
167 | ---------------------------- | ||
168 | mout_hdmi 1024 | ||
169 | |||
158 | 170 | ||
159 | Example 1: An example of a clock controller node is listed below. | 171 | Example 1: An example of a clock controller node is listed below. |
160 | 172 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt index 9bcc4b1bff51..32aa34ecad36 100644 --- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt | |||
@@ -59,6 +59,7 @@ clock which they consume. | |||
59 | sclk_pwm 155 | 59 | sclk_pwm 155 |
60 | sclk_gscl_wa 156 | 60 | sclk_gscl_wa 156 |
61 | sclk_gscl_wb 157 | 61 | sclk_gscl_wb 157 |
62 | sclk_hdmiphy 158 | ||
62 | 63 | ||
63 | [Peripheral Clock Gates] | 64 | [Peripheral Clock Gates] |
64 | 65 | ||
@@ -179,6 +180,17 @@ clock which they consume. | |||
179 | fimc_lite3 495 | 180 | fimc_lite3 495 |
180 | aclk_g3d 500 | 181 | aclk_g3d 500 |
181 | g3d 501 | 182 | g3d 501 |
183 | smmu_mixer 502 | ||
184 | |||
185 | Mux ID | ||
186 | ---------------------------- | ||
187 | |||
188 | mout_hdmi 640 | ||
189 | |||
190 | Divider ID | ||
191 | ---------------------------- | ||
192 | |||
193 | dout_pixel 768 | ||
182 | 194 | ||
183 | Example 1: An example of a clock controller node is listed below. | 195 | Example 1: An example of a clock controller node is listed below. |
184 | 196 | ||
diff --git a/Documentation/devicetree/bindings/clock/imx5-clock.txt b/Documentation/devicetree/bindings/clock/imx5-clock.txt index f46f5625d8ad..4c029a8739d3 100644 --- a/Documentation/devicetree/bindings/clock/imx5-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx5-clock.txt | |||
@@ -197,6 +197,7 @@ clocks and IDs. | |||
197 | spdif0_gate 183 | 197 | spdif0_gate 183 |
198 | spdif1_gate 184 | 198 | spdif1_gate 184 |
199 | spdif_ipg_gate 185 | 199 | spdif_ipg_gate 185 |
200 | ocram 186 | ||
200 | 201 | ||
201 | Examples (for mx53): | 202 | Examples (for mx53): |
202 | 203 | ||
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt index a0e104f0527e..5a90a724b520 100644 --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt | |||
@@ -209,6 +209,12 @@ clocks and IDs. | |||
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 | eim_slow 196 |
212 | spdif 197 | ||
213 | cko2_sel 198 | ||
214 | cko2_podf 199 | ||
215 | cko2 200 | ||
216 | cko 201 | ||
217 | vdoa 202 | ||
212 | 218 | ||
213 | Examples: | 219 | Examples: |
214 | 220 | ||
diff --git a/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt new file mode 100644 index 000000000000..fa171dc4bd3c --- /dev/null +++ b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt | |||
@@ -0,0 +1,77 @@ | |||
1 | * Samsung S3C64xx Clock Controller | ||
2 | |||
3 | The S3C64xx clock controller generates and supplies clock to various controllers | ||
4 | within the SoC. The clock binding described here is applicable to all SoCs in | ||
5 | the S3C64xx family. | ||
6 | |||
7 | Required Properties: | ||
8 | |||
9 | - compatible: should be one of the following. | ||
10 | - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC. | ||
11 | - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC. | ||
12 | |||
13 | - reg: physical base address of the controller and length of memory mapped | ||
14 | region. | ||
15 | |||
16 | - #clock-cells: should be 1. | ||
17 | |||
18 | Each clock is assigned an identifier and client nodes can use this identifier | ||
19 | to specify the clock which they consume. Some of the clocks are available only | ||
20 | on a particular S3C64xx SoC and this is specified where applicable. | ||
21 | |||
22 | All available clocks are defined as preprocessor macros in | ||
23 | dt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device | ||
24 | tree sources. | ||
25 | |||
26 | External clocks: | ||
27 | |||
28 | There are several clocks that are generated outside the SoC. It is expected | ||
29 | that they are defined using standard clock bindings with following | ||
30 | clock-output-names: | ||
31 | - "fin_pll" - PLL input clock (xtal/extclk) - required, | ||
32 | - "xusbxti" - USB xtal - required, | ||
33 | - "iiscdclk0" - I2S0 codec clock - optional, | ||
34 | - "iiscdclk1" - I2S1 codec clock - optional, | ||
35 | - "iiscdclk2" - I2S2 codec clock - optional, | ||
36 | - "pcmcdclk0" - PCM0 codec clock - optional, | ||
37 | - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410. | ||
38 | |||
39 | Example: Clock controller node: | ||
40 | |||
41 | clock: clock-controller@7e00f000 { | ||
42 | compatible = "samsung,s3c6410-clock"; | ||
43 | reg = <0x7e00f000 0x1000>; | ||
44 | #clock-cells = <1>; | ||
45 | }; | ||
46 | |||
47 | Example: Required external clocks: | ||
48 | |||
49 | fin_pll: clock-fin-pll { | ||
50 | compatible = "fixed-clock"; | ||
51 | clock-output-names = "fin_pll"; | ||
52 | clock-frequency = <12000000>; | ||
53 | #clock-cells = <0>; | ||
54 | }; | ||
55 | |||
56 | xusbxti: clock-xusbxti { | ||
57 | compatible = "fixed-clock"; | ||
58 | clock-output-names = "xusbxti"; | ||
59 | clock-frequency = <48000000>; | ||
60 | #clock-cells = <0>; | ||
61 | }; | ||
62 | |||
63 | Example: UART controller node that consumes the clock generated by the clock | ||
64 | controller (refer to the standard clock bindings for information about | ||
65 | "clocks" and "clock-names" properties): | ||
66 | |||
67 | uart0: serial@7f005000 { | ||
68 | compatible = "samsung,s3c6400-uart"; | ||
69 | reg = <0x7f005000 0x100>; | ||
70 | interrupt-parent = <&vic1>; | ||
71 | interrupts = <5>; | ||
72 | clock-names = "uart", "clk_uart_baud2", | ||
73 | "clk_uart_baud3"; | ||
74 | clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>, | ||
75 | <&clock SCLK_UART>; | ||
76 | status = "disabled"; | ||
77 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/st,nomadik.txt b/Documentation/devicetree/bindings/clock/st,nomadik.txt index 7fc09773de46..40e0cf1f7b99 100644 --- a/Documentation/devicetree/bindings/clock/st,nomadik.txt +++ b/Documentation/devicetree/bindings/clock/st,nomadik.txt | |||
@@ -17,7 +17,7 @@ Optional properties for the SRC node: | |||
17 | - disable-mxtal: if present this will disable the MXTALO, | 17 | - disable-mxtal: if present this will disable the MXTALO, |
18 | i.e. the driver output for the main (~19.2 MHz) chrystal, | 18 | i.e. the driver output for the main (~19.2 MHz) chrystal, |
19 | if the board has its own circuitry for providing this | 19 | if the board has its own circuitry for providing this |
20 | osciallator | 20 | oscillator |
21 | 21 | ||
22 | 22 | ||
23 | PLL nodes: these nodes represent the two PLLs on the system, | 23 | PLL nodes: these nodes represent the two PLLs on the system, |
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt index d495521a79d2..00a5c26454eb 100644 --- a/Documentation/devicetree/bindings/clock/sunxi.txt +++ b/Documentation/devicetree/bindings/clock/sunxi.txt | |||
@@ -8,19 +8,31 @@ Required properties: | |||
8 | - compatible : shall be one of the following: | 8 | - compatible : shall be one of the following: |
9 | "allwinner,sun4i-osc-clk" - for a gatable oscillator | 9 | "allwinner,sun4i-osc-clk" - for a gatable oscillator |
10 | "allwinner,sun4i-pll1-clk" - for the main PLL clock | 10 | "allwinner,sun4i-pll1-clk" - for the main PLL clock |
11 | "allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31 | ||
11 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock | 12 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock |
12 | "allwinner,sun4i-axi-clk" - for the AXI clock | 13 | "allwinner,sun4i-axi-clk" - for the AXI clock |
13 | "allwinner,sun4i-axi-gates-clk" - for the AXI gates | 14 | "allwinner,sun4i-axi-gates-clk" - for the AXI gates |
14 | "allwinner,sun4i-ahb-clk" - for the AHB clock | 15 | "allwinner,sun4i-ahb-clk" - for the AHB clock |
15 | "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10 | 16 | "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10 |
16 | "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13 | 17 | "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13 |
18 | "allwinner,sun5i-a10s-ahb-gates-clk" - for the AHB gates on A10s | ||
19 | "allwinner,sun7i-a20-ahb-gates-clk" - for the AHB gates on A20 | ||
20 | "allwinner,sun6i-a31-ahb1-mux-clk" - for the AHB1 multiplexer on A31 | ||
21 | "allwinner,sun6i-a31-ahb1-gates-clk" - for the AHB1 gates on A31 | ||
17 | "allwinner,sun4i-apb0-clk" - for the APB0 clock | 22 | "allwinner,sun4i-apb0-clk" - for the APB0 clock |
18 | "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10 | 23 | "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10 |
19 | "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13 | 24 | "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13 |
25 | "allwinner,sun5i-a10s-apb0-gates-clk" - for the APB0 gates on A10s | ||
26 | "allwinner,sun7i-a20-apb0-gates-clk" - for the APB0 gates on A20 | ||
20 | "allwinner,sun4i-apb1-clk" - for the APB1 clock | 27 | "allwinner,sun4i-apb1-clk" - for the APB1 clock |
21 | "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing | 28 | "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing |
22 | "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10 | 29 | "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10 |
23 | "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13 | 30 | "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13 |
31 | "allwinner,sun5i-a10s-apb1-gates-clk" - for the APB1 gates on A10s | ||
32 | "allwinner,sun6i-a31-apb1-gates-clk" - for the APB1 gates on A31 | ||
33 | "allwinner,sun7i-a20-apb1-gates-clk" - for the APB1 gates on A20 | ||
34 | "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31 | ||
35 | "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31 | ||
24 | 36 | ||
25 | Required properties for all clocks: | 37 | Required properties for all clocks: |
26 | - reg : shall be the control register address for the clock. | 38 | - reg : shall be the control register address for the clock. |
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt new file mode 100644 index 000000000000..d24279fe1429 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt | |||
@@ -0,0 +1,75 @@ | |||
1 | Gate clock outputs | ||
2 | ------------------ | ||
3 | |||
4 | * AXI gates ("allwinner,sun4i-axi-gates-clk") | ||
5 | |||
6 | DRAM 0 | ||
7 | |||
8 | * AHB gates ("allwinner,sun5i-a10s-ahb-gates-clk") | ||
9 | |||
10 | USB0 0 | ||
11 | EHCI0 1 | ||
12 | OHCI0 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 | EMAC 17 | ||
25 | TS 18 | ||
26 | |||
27 | SPI0 20 | ||
28 | SPI1 21 | ||
29 | SPI2 22 | ||
30 | |||
31 | GPS 26 | ||
32 | |||
33 | HSTIMER 28 | ||
34 | |||
35 | VE 32 | ||
36 | |||
37 | TVE 34 | ||
38 | |||
39 | LCD 36 | ||
40 | |||
41 | CSI 40 | ||
42 | |||
43 | HDMI 43 | ||
44 | DE_BE 44 | ||
45 | |||
46 | DE_FE 46 | ||
47 | |||
48 | IEP 51 | ||
49 | MALI400 52 | ||
50 | |||
51 | * APB0 gates ("allwinner,sun5i-a10s-apb0-gates-clk") | ||
52 | |||
53 | CODEC 0 | ||
54 | |||
55 | IIS 3 | ||
56 | |||
57 | PIO 5 | ||
58 | IR 6 | ||
59 | |||
60 | KEYPAD 10 | ||
61 | |||
62 | * APB1 gates ("allwinner,sun5i-a10s-apb1-gates-clk") | ||
63 | |||
64 | I2C0 0 | ||
65 | I2C1 1 | ||
66 | I2C2 2 | ||
67 | |||
68 | UART0 16 | ||
69 | UART1 17 | ||
70 | UART2 18 | ||
71 | UART3 19 | ||
72 | |||
73 | Notation: | ||
74 | [*]: The datasheet didn't mention these, but they are present on AW code | ||
75 | [**]: The datasheet had this marked as "NC" but they are used on AW code | ||
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt new file mode 100644 index 000000000000..fe44932b5c6b --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt | |||
@@ -0,0 +1,83 @@ | |||
1 | Gate clock outputs | ||
2 | ------------------ | ||
3 | |||
4 | * AHB1 gates ("allwinner,sun6i-a31-ahb1-gates-clk") | ||
5 | |||
6 | MIPI DSI 1 | ||
7 | |||
8 | SS 5 | ||
9 | DMA 6 | ||
10 | |||
11 | MMC0 8 | ||
12 | MMC1 9 | ||
13 | MMC2 10 | ||
14 | MMC3 11 | ||
15 | |||
16 | NAND1 12 | ||
17 | NAND0 13 | ||
18 | SDRAM 14 | ||
19 | |||
20 | GMAC 17 | ||
21 | TS 18 | ||
22 | HSTIMER 19 | ||
23 | SPI0 20 | ||
24 | SPI1 21 | ||
25 | SPI2 22 | ||
26 | SPI3 23 | ||
27 | USB_OTG 24 | ||
28 | |||
29 | EHCI0 26 | ||
30 | EHCI1 27 | ||
31 | |||
32 | OHCI0 29 | ||
33 | OHCI1 30 | ||
34 | OHCI2 31 | ||
35 | VE 32 | ||
36 | |||
37 | LCD0 36 | ||
38 | LCD1 37 | ||
39 | |||
40 | CSI 40 | ||
41 | |||
42 | HDMI 43 | ||
43 | DE_BE0 44 | ||
44 | DE_BE1 45 | ||
45 | DE_FE1 46 | ||
46 | DE_FE1 47 | ||
47 | |||
48 | MP 50 | ||
49 | |||
50 | GPU 52 | ||
51 | |||
52 | DEU0 55 | ||
53 | DEU1 56 | ||
54 | DRC0 57 | ||
55 | DRC1 58 | ||
56 | |||
57 | * APB1 gates ("allwinner,sun6i-a31-apb1-gates-clk") | ||
58 | |||
59 | CODEC 0 | ||
60 | |||
61 | DIGITAL MIC 4 | ||
62 | PIO 5 | ||
63 | |||
64 | DAUDIO0 12 | ||
65 | DAUDIO1 13 | ||
66 | |||
67 | * APB2 gates ("allwinner,sun6i-a31-apb2-gates-clk") | ||
68 | |||
69 | I2C0 0 | ||
70 | I2C1 1 | ||
71 | I2C2 2 | ||
72 | I2C3 3 | ||
73 | |||
74 | UART0 16 | ||
75 | UART1 17 | ||
76 | UART2 18 | ||
77 | UART3 19 | ||
78 | UART4 20 | ||
79 | UART5 21 | ||
80 | |||
81 | Notation: | ||
82 | [*]: The datasheet didn't mention these, but they are present on AW code | ||
83 | [**]: The datasheet had this marked as "NC" but they are used on AW code | ||
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt new file mode 100644 index 000000000000..357f4fdc02ef --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt | |||
@@ -0,0 +1,98 @@ | |||
1 | Gate clock outputs | ||
2 | ------------------ | ||
3 | |||
4 | * AXI gates ("allwinner,sun4i-axi-gates-clk") | ||
5 | |||
6 | DRAM 0 | ||
7 | |||
8 | * AHB gates ("allwinner,sun7i-a20-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 | |||
35 | SATA 25 | ||
36 | |||
37 | HSTIMER 28 | ||
38 | |||
39 | VE 32 | ||
40 | TVD 33 | ||
41 | TVE0 34 | ||
42 | TVE1 35 | ||
43 | LCD0 36 | ||
44 | LCD1 37 | ||
45 | |||
46 | CSI0 40 | ||
47 | CSI1 41 | ||
48 | |||
49 | HDMI1 42 | ||
50 | HDMI0 43 | ||
51 | DE_BE0 44 | ||
52 | DE_BE1 45 | ||
53 | DE_FE1 46 | ||
54 | DE_FE1 47 | ||
55 | |||
56 | GMAC 49 | ||
57 | MP 50 | ||
58 | |||
59 | MALI400 52 | ||
60 | |||
61 | * APB0 gates ("allwinner,sun7i-a20-apb0-gates-clk") | ||
62 | |||
63 | CODEC 0 | ||
64 | SPDIF 1 | ||
65 | AC97 2 | ||
66 | IIS0 3 | ||
67 | IIS1 4 | ||
68 | PIO 5 | ||
69 | IR0 6 | ||
70 | IR1 7 | ||
71 | IIS2 8 | ||
72 | |||
73 | KEYPAD 10 | ||
74 | |||
75 | * APB1 gates ("allwinner,sun7i-a20-apb1-gates-clk") | ||
76 | |||
77 | I2C0 0 | ||
78 | I2C1 1 | ||
79 | I2C2 2 | ||
80 | I2C3 3 | ||
81 | CAN 4 | ||
82 | SCR 5 | ||
83 | PS20 6 | ||
84 | PS21 7 | ||
85 | |||
86 | I2C4 15 | ||
87 | UART0 16 | ||
88 | UART1 17 | ||
89 | UART2 18 | ||
90 | UART3 19 | ||
91 | UART4 20 | ||
92 | UART5 21 | ||
93 | UART6 22 | ||
94 | UART7 23 | ||
95 | |||
96 | Notation: | ||
97 | [*]: The datasheet didn't mention these, but they are present on AW code | ||
98 | [**]: The datasheet had this marked as "NC" but they are used on AW code | ||
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt new file mode 100644 index 000000000000..c0a20cd972e3 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt | |||
@@ -0,0 +1,157 @@ | |||
1 | SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM). | ||
2 | Currently Freescale powerpc chip C29X is embeded with SEC 6. | ||
3 | SEC 6 device tree binding include: | ||
4 | -SEC 6 Node | ||
5 | -Job Ring Node | ||
6 | -Full Example | ||
7 | |||
8 | ===================================================================== | ||
9 | SEC 6 Node | ||
10 | |||
11 | Description | ||
12 | |||
13 | Node defines the base address of the SEC 6 block. | ||
14 | This block specifies the address range of all global | ||
15 | configuration registers for the SEC 6 block. | ||
16 | For example, In C293, we could see three SEC 6 node. | ||
17 | |||
18 | PROPERTIES | ||
19 | |||
20 | - compatible | ||
21 | Usage: required | ||
22 | Value type: <string> | ||
23 | Definition: Must include "fsl,sec-v6.0". | ||
24 | |||
25 | - fsl,sec-era | ||
26 | Usage: optional | ||
27 | Value type: <u32> | ||
28 | Definition: A standard property. Define the 'ERA' of the SEC | ||
29 | device. | ||
30 | |||
31 | - #address-cells | ||
32 | Usage: required | ||
33 | Value type: <u32> | ||
34 | Definition: A standard property. Defines the number of cells | ||
35 | for representing physical addresses in child nodes. | ||
36 | |||
37 | - #size-cells | ||
38 | Usage: required | ||
39 | Value type: <u32> | ||
40 | Definition: A standard property. Defines the number of cells | ||
41 | for representing the size of physical addresses in | ||
42 | child nodes. | ||
43 | |||
44 | - reg | ||
45 | Usage: required | ||
46 | Value type: <prop-encoded-array> | ||
47 | Definition: A standard property. Specifies the physical | ||
48 | address and length of the SEC 6 configuration registers. | ||
49 | |||
50 | - ranges | ||
51 | Usage: required | ||
52 | Value type: <prop-encoded-array> | ||
53 | Definition: A standard property. Specifies the physical address | ||
54 | range of the SEC 6.0 register space (-SNVS not included). A | ||
55 | triplet that includes the child address, parent address, & | ||
56 | length. | ||
57 | |||
58 | Note: All other standard properties (see the ePAPR) are allowed | ||
59 | but are optional. | ||
60 | |||
61 | EXAMPLE | ||
62 | crypto@a0000 { | ||
63 | compatible = "fsl,sec-v6.0"; | ||
64 | fsl,sec-era = <6>; | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <1>; | ||
67 | reg = <0xa0000 0x20000>; | ||
68 | ranges = <0 0xa0000 0x20000>; | ||
69 | }; | ||
70 | |||
71 | ===================================================================== | ||
72 | Job Ring (JR) Node | ||
73 | |||
74 | Child of the crypto node defines data processing interface to SEC 6 | ||
75 | across the peripheral bus for purposes of processing | ||
76 | cryptographic descriptors. The specified address | ||
77 | range can be made visible to one (or more) cores. | ||
78 | The interrupt defined for this node is controlled within | ||
79 | the address range of this node. | ||
80 | |||
81 | - compatible | ||
82 | Usage: required | ||
83 | Value type: <string> | ||
84 | Definition: Must include "fsl,sec-v6.0-job-ring". | ||
85 | |||
86 | - reg | ||
87 | Usage: required | ||
88 | Value type: <prop-encoded-array> | ||
89 | Definition: Specifies a two JR parameters: an offset from | ||
90 | the parent physical address and the length the JR registers. | ||
91 | |||
92 | - interrupts | ||
93 | Usage: required | ||
94 | Value type: <prop_encoded-array> | ||
95 | Definition: Specifies the interrupts generated by this | ||
96 | device. The value of the interrupts property | ||
97 | consists of one interrupt specifier. The format | ||
98 | of the specifier is defined by the binding document | ||
99 | describing the node's interrupt parent. | ||
100 | |||
101 | EXAMPLE | ||
102 | jr@1000 { | ||
103 | compatible = "fsl,sec-v6.0-job-ring"; | ||
104 | reg = <0x1000 0x1000>; | ||
105 | interrupts = <49 2 0 0>; | ||
106 | }; | ||
107 | |||
108 | =================================================================== | ||
109 | Full Example | ||
110 | |||
111 | Since some chips may contain more than one SEC, the dtsi contains | ||
112 | only the node contents, not the node itself. A chip using the SEC | ||
113 | should include the dtsi inside each SEC node. Example: | ||
114 | |||
115 | In qoriq-sec6.0.dtsi: | ||
116 | |||
117 | compatible = "fsl,sec-v6.0"; | ||
118 | fsl,sec-era = <6>; | ||
119 | #address-cells = <1>; | ||
120 | #size-cells = <1>; | ||
121 | |||
122 | jr@1000 { | ||
123 | compatible = "fsl,sec-v6.0-job-ring", | ||
124 | "fsl,sec-v5.2-job-ring", | ||
125 | "fsl,sec-v5.0-job-ring", | ||
126 | "fsl,sec-v4.4-job-ring", | ||
127 | "fsl,sec-v4.0-job-ring"; | ||
128 | reg = <0x1000 0x1000>; | ||
129 | }; | ||
130 | |||
131 | jr@2000 { | ||
132 | compatible = "fsl,sec-v6.0-job-ring", | ||
133 | "fsl,sec-v5.2-job-ring", | ||
134 | "fsl,sec-v5.0-job-ring", | ||
135 | "fsl,sec-v4.4-job-ring", | ||
136 | "fsl,sec-v4.0-job-ring"; | ||
137 | reg = <0x2000 0x1000>; | ||
138 | }; | ||
139 | |||
140 | In the C293 device tree, we add the include of public property: | ||
141 | |||
142 | crypto@a0000 { | ||
143 | /include/ "qoriq-sec6.0.dtsi" | ||
144 | } | ||
145 | |||
146 | crypto@a0000 { | ||
147 | reg = <0xa0000 0x20000>; | ||
148 | ranges = <0 0xa0000 0x20000>; | ||
149 | |||
150 | jr@1000 { | ||
151 | interrupts = <49 2 0 0>; | ||
152 | }; | ||
153 | |||
154 | jr@2000 { | ||
155 | interrupts = <50 2 0 0>; | ||
156 | }; | ||
157 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt index c280a0e6f42d..e1f343c7a34b 100644 --- a/Documentation/devicetree/bindings/dma/atmel-dma.txt +++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt | |||
@@ -18,14 +18,14 @@ dma0: dma@ffffec00 { | |||
18 | 18 | ||
19 | DMA clients connected to the Atmel DMA controller must use the format | 19 | DMA clients connected to the Atmel DMA controller must use the format |
20 | described in the dma.txt file, using a three-cell specifier for each channel: | 20 | described in the dma.txt file, using a three-cell specifier for each channel: |
21 | a phandle plus two interger cells. | 21 | a phandle plus two integer cells. |
22 | The three cells in order are: | 22 | The three cells in order are: |
23 | 23 | ||
24 | 1. A phandle pointing to the DMA controller. | 24 | 1. A phandle pointing to the DMA controller. |
25 | 2. The memory interface (16 most significant bits), the peripheral interface | 25 | 2. The memory interface (16 most significant bits), the peripheral interface |
26 | (16 less significant bits). | 26 | (16 less significant bits). |
27 | 3. Parameters for the at91 DMA configuration register which are device | 27 | 3. Parameters for the at91 DMA configuration register which are device |
28 | dependant: | 28 | dependent: |
29 | - bit 7-0: peripheral identifier for the hardware handshaking interface. The | 29 | - bit 7-0: peripheral identifier for the hardware handshaking interface. The |
30 | identifier can be different for tx and rx. | 30 | identifier can be different for tx and rx. |
31 | - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP. | 31 | - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP. |
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt index 2717ecb47db9..7bd8847d6394 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt | |||
@@ -34,7 +34,7 @@ Clients have to specify the DMA requests with phandles in a list. | |||
34 | Required properties: | 34 | Required properties: |
35 | - dmas: List of one or more DMA request specifiers. One DMA request specifier | 35 | - dmas: List of one or more DMA request specifiers. One DMA request specifier |
36 | consists of a phandle to the DMA controller followed by the integer | 36 | consists of a phandle to the DMA controller followed by the integer |
37 | specifiying the request line. | 37 | specifying the request line. |
38 | - dma-names: List of string identifiers for the DMA requests. For the correct | 38 | - dma-names: List of string identifiers for the DMA requests. For the correct |
39 | names, have a look at the specific client driver. | 39 | names, have a look at the specific client driver. |
40 | 40 | ||
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt index 68cee4f5539f..4fa814d38321 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt | |||
@@ -1,7 +1,12 @@ | |||
1 | * Freescale Smart Direct Memory Access (SDMA) Controller for i.MX | 1 | * Freescale Smart Direct Memory Access (SDMA) Controller for i.MX |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "fsl,<chip>-sdma" | 4 | - compatible : Should be "fsl,imx31-sdma", "fsl,imx31-to1-sdma", |
5 | "fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma", | ||
6 | "fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or | ||
7 | "fsl,imx6q-sdma". The -to variants should be preferred since they | ||
8 | allow to determnine the correct ROM script addresses needed for | ||
9 | the driver to work without additional firmware. | ||
5 | - reg : Should contain SDMA registers location and length | 10 | - reg : Should contain SDMA registers location and length |
6 | - interrupts : Should contain SDMA interrupt | 11 | - interrupts : Should contain SDMA interrupt |
7 | - #dma-cells : Must be <3>. | 12 | - #dma-cells : Must be <3>. |
diff --git a/Documentation/devicetree/bindings/dma/k3dma.txt b/Documentation/devicetree/bindings/dma/k3dma.txt new file mode 100644 index 000000000000..23f8d712c3ce --- /dev/null +++ b/Documentation/devicetree/bindings/dma/k3dma.txt | |||
@@ -0,0 +1,46 @@ | |||
1 | * Hisilicon K3 DMA controller | ||
2 | |||
3 | See dma.txt first | ||
4 | |||
5 | Required properties: | ||
6 | - compatible: Should be "hisilicon,k3-dma-1.0" | ||
7 | - reg: Should contain DMA registers location and length. | ||
8 | - interrupts: Should contain one interrupt shared by all channel | ||
9 | - #dma-cells: see dma.txt, should be 1, para number | ||
10 | - dma-channels: physical channels supported | ||
11 | - dma-requests: virtual channels supported, each virtual channel | ||
12 | have specific request line | ||
13 | - clocks: clock required | ||
14 | |||
15 | Example: | ||
16 | |||
17 | Controller: | ||
18 | dma0: dma@fcd02000 { | ||
19 | compatible = "hisilicon,k3-dma-1.0"; | ||
20 | reg = <0xfcd02000 0x1000>; | ||
21 | #dma-cells = <1>; | ||
22 | dma-channels = <16>; | ||
23 | dma-requests = <27>; | ||
24 | interrupts = <0 12 4>; | ||
25 | clocks = <&pclk>; | ||
26 | status = "disable"; | ||
27 | }; | ||
28 | |||
29 | Client: | ||
30 | Use specific request line passing from dmax | ||
31 | For example, i2c0 read channel request line is 18, while write channel use 19 | ||
32 | |||
33 | i2c0: i2c@fcb08000 { | ||
34 | compatible = "snps,designware-i2c"; | ||
35 | dmas = <&dma0 18 /* read channel */ | ||
36 | &dma0 19>; /* write channel */ | ||
37 | dma-names = "rx", "tx"; | ||
38 | }; | ||
39 | |||
40 | i2c1: i2c@fcb09000 { | ||
41 | compatible = "snps,designware-i2c"; | ||
42 | dmas = <&dma0 20 /* read channel */ | ||
43 | &dma0 21>; /* write channel */ | ||
44 | dma-names = "rx", "tx"; | ||
45 | }; | ||
46 | |||
diff --git a/Documentation/devicetree/bindings/dma/shdma.txt b/Documentation/devicetree/bindings/dma/shdma.txt index c15994aa1939..2a3f3b8946b9 100644 --- a/Documentation/devicetree/bindings/dma/shdma.txt +++ b/Documentation/devicetree/bindings/dma/shdma.txt | |||
@@ -22,42 +22,51 @@ Optional properties (currently unused): | |||
22 | * DMA controller | 22 | * DMA controller |
23 | 23 | ||
24 | Required properties: | 24 | Required properties: |
25 | - compatible: should be "renesas,shdma" | 25 | - compatible: should be of the form "renesas,shdma-<soc>", where <soc> should |
26 | be replaced with the desired SoC model, e.g. | ||
27 | "renesas,shdma-r8a73a4" for the system DMAC on r8a73a4 SoC | ||
26 | 28 | ||
27 | Example: | 29 | Example: |
28 | dmac: dma-mux0 { | 30 | dmac: dma-multiplexer@0 { |
29 | compatible = "renesas,shdma-mux"; | 31 | compatible = "renesas,shdma-mux"; |
30 | #dma-cells = <1>; | 32 | #dma-cells = <1>; |
31 | dma-channels = <6>; | 33 | dma-channels = <20>; |
32 | dma-requests = <256>; | 34 | dma-requests = <256>; |
33 | reg = <0 0>; /* Needed for AUXDATA */ | 35 | #address-cells = <2>; |
34 | #address-cells = <1>; | 36 | #size-cells = <2>; |
35 | #size-cells = <1>; | ||
36 | ranges; | 37 | ranges; |
37 | 38 | ||
38 | dma0: shdma@fe008020 { | 39 | dma0: dma-controller@e6700020 { |
39 | compatible = "renesas,shdma"; | 40 | compatible = "renesas,shdma-r8a73a4"; |
40 | reg = <0xfe008020 0x270>, | 41 | reg = <0 0xe6700020 0 0x89e0>; |
41 | <0xfe009000 0xc>; | ||
42 | interrupt-parent = <&gic>; | 42 | interrupt-parent = <&gic>; |
43 | interrupts = <0 34 4 | 43 | interrupts = <0 220 4 |
44 | 0 28 4 | 44 | 0 200 4 |
45 | 0 29 4 | 45 | 0 201 4 |
46 | 0 30 4 | 46 | 0 202 4 |
47 | 0 31 4 | 47 | 0 203 4 |
48 | 0 32 4 | 48 | 0 204 4 |
49 | 0 33 4>; | 49 | 0 205 4 |
50 | 0 206 4 | ||
51 | 0 207 4 | ||
52 | 0 208 4 | ||
53 | 0 209 4 | ||
54 | 0 210 4 | ||
55 | 0 211 4 | ||
56 | 0 212 4 | ||
57 | 0 213 4 | ||
58 | 0 214 4 | ||
59 | 0 215 4 | ||
60 | 0 216 4 | ||
61 | 0 217 4 | ||
62 | 0 218 4 | ||
63 | 0 219 4>; | ||
50 | interrupt-names = "error", | 64 | interrupt-names = "error", |
51 | "ch0", "ch1", "ch2", "ch3", | 65 | "ch0", "ch1", "ch2", "ch3", |
52 | "ch4", "ch5"; | 66 | "ch4", "ch5", "ch6", "ch7", |
53 | }; | 67 | "ch8", "ch9", "ch10", "ch11", |
54 | 68 | "ch12", "ch13", "ch14", "ch15", | |
55 | dma1: shdma@fe018020 { | 69 | "ch16", "ch17", "ch18", "ch19"; |
56 | ... | ||
57 | }; | ||
58 | |||
59 | dma2: shdma@fe028020 { | ||
60 | ... | ||
61 | }; | 70 | }; |
62 | }; | 71 | }; |
63 | 72 | ||
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt index bea5b73a7390..a8c21c256baa 100644 --- a/Documentation/devicetree/bindings/dma/ste-dma40.txt +++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt | |||
@@ -37,14 +37,14 @@ Each dmas request consists of 4 cells: | |||
37 | 1. A phandle pointing to the DMA controller | 37 | 1. A phandle pointing to the DMA controller |
38 | 2. Device Type | 38 | 2. Device Type |
39 | 3. The DMA request line number (only when 'use fixed channel' is set) | 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] | 40 | 4. A 32bit mask specifying; mode, direction and endianness [NB: This list will grow] |
41 | 0x00000001: Mode: | 41 | 0x00000001: Mode: |
42 | Logical channel when unset | 42 | Logical channel when unset |
43 | Physical channel when set | 43 | Physical channel when set |
44 | 0x00000002: Direction: | 44 | 0x00000002: Direction: |
45 | Memory to Device when unset | 45 | Memory to Device when unset |
46 | Device to Memory when set | 46 | Device to Memory when set |
47 | 0x00000004: Endianess: | 47 | 0x00000004: Endianness: |
48 | Little endian when unset | 48 | Little endian when unset |
49 | Big endian when set | 49 | Big endian when set |
50 | 0x00000008: Use fixed channel: | 50 | 0x00000008: Use fixed channel: |
diff --git a/Documentation/devicetree/bindings/extcon/extcon-twl.txt b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt index 58f531ab4df3..7dab6a8f4a0e 100644 --- a/Documentation/devicetree/bindings/extcon/extcon-twl.txt +++ b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt | |||
@@ -1,15 +1,15 @@ | |||
1 | EXTCON FOR TWL CHIPS | 1 | EXTCON FOR PALMAS/TWL CHIPS |
2 | 2 | ||
3 | PALMAS USB COMPARATOR | 3 | PALMAS USB COMPARATOR |
4 | Required Properties: | 4 | Required Properties: |
5 | - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb" | 5 | - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb" |
6 | - vbus-supply : phandle to the regulator device tree node. | ||
7 | 6 | ||
8 | Optional Properties: | 7 | Optional Properties: |
9 | - ti,wakeup : To enable the wakeup comparator in probe | 8 | - ti,wakeup : To enable the wakeup comparator in probe |
9 | - ti,enable-id-detection: Perform ID detection. | ||
10 | - ti,enable-vbus-detection: Perform VBUS detection. | ||
10 | 11 | ||
11 | palmas-usb { | 12 | palmas-usb { |
12 | compatible = "ti,twl6035-usb", "ti,palmas-usb"; | 13 | compatible = "ti,twl6035-usb", "ti,palmas-usb"; |
13 | vbus-supply = <&smps10_reg>; | ||
14 | ti,wakeup; | 14 | ti,wakeup; |
15 | }; | 15 | }; |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt index 629d0ef17308..daa30174bcc1 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt | |||
@@ -3,10 +3,17 @@ Microchip MCP2308/MCP23S08/MCP23017/MCP23S17 driver for | |||
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible : Should be | 5 | - compatible : Should be |
6 | - "mcp,mcp23s08" for 8 GPIO SPI version | 6 | - "mcp,mcp23s08" (DEPRECATED) for 8 GPIO SPI version |
7 | - "mcp,mcp23s17" for 16 GPIO SPI version | 7 | - "mcp,mcp23s17" (DEPRECATED) for 16 GPIO SPI version |
8 | - "mcp,mcp23008" for 8 GPIO I2C version or | 8 | - "mcp,mcp23008" (DEPRECATED) for 8 GPIO I2C version or |
9 | - "mcp,mcp23017" for 16 GPIO I2C version of the chip | 9 | - "mcp,mcp23017" (DEPRECATED) for 16 GPIO I2C version of the chip |
10 | |||
11 | - "microchip,mcp23s08" for 8 GPIO SPI version | ||
12 | - "microchip,mcp23s17" for 16 GPIO SPI version | ||
13 | - "microchip,mcp23008" for 8 GPIO I2C version or | ||
14 | - "microchip,mcp23017" for 16 GPIO I2C version of the chip | ||
15 | NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | ||
16 | removed. | ||
10 | - #gpio-cells : Should be two. | 17 | - #gpio-cells : Should be two. |
11 | - first cell is the pin number | 18 | - first cell is the pin number |
12 | - second cell is used to specify flags. Flags are currently unused. | 19 | - second cell is used to specify flags. Flags are currently unused. |
@@ -15,10 +22,11 @@ Required properties: | |||
15 | SPI uses this to specify the chipselect line which the chip is | 22 | SPI uses this to specify the chipselect line which the chip is |
16 | connected to. The driver and the SPI variant of the chip support | 23 | connected to. The driver and the SPI variant of the chip support |
17 | multiple chips on the same chipselect. Have a look at | 24 | multiple chips on the same chipselect. Have a look at |
18 | mcp,spi-present-mask below. | 25 | microchip,spi-present-mask below. |
19 | 26 | ||
20 | Required device specific properties (only for SPI chips): | 27 | Required device specific properties (only for SPI chips): |
21 | - mcp,spi-present-mask : This is a present flag, that makes only sense for SPI | 28 | - mcp,spi-present-mask (DEPRECATED) |
29 | - microchip,spi-present-mask : This is a present flag, that makes only sense for SPI | ||
22 | chips - as the name suggests. Multiple SPI chips can share the same | 30 | chips - as the name suggests. Multiple SPI chips can share the same |
23 | SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a | 31 | SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a |
24 | chip connected with the corresponding spi address set. For example if | 32 | chip connected with the corresponding spi address set. For example if |
@@ -26,11 +34,13 @@ Required device specific properties (only for SPI chips): | |||
26 | which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not | 34 | which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not |
27 | possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at | 35 | possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at |
28 | least one bit to 1 for SPI chips. | 36 | least one bit to 1 for SPI chips. |
37 | NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | ||
38 | removed. | ||
29 | - spi-max-frequency = The maximum frequency this chip is able to handle | 39 | - spi-max-frequency = The maximum frequency this chip is able to handle |
30 | 40 | ||
31 | Example I2C: | 41 | Example I2C: |
32 | gpiom1: gpio@20 { | 42 | gpiom1: gpio@20 { |
33 | compatible = "mcp,mcp23017"; | 43 | compatible = "microchip,mcp23017"; |
34 | gpio-controller; | 44 | gpio-controller; |
35 | #gpio-cells = <2>; | 45 | #gpio-cells = <2>; |
36 | reg = <0x20>; | 46 | reg = <0x20>; |
@@ -38,7 +48,7 @@ gpiom1: gpio@20 { | |||
38 | 48 | ||
39 | Example SPI: | 49 | Example SPI: |
40 | gpiom1: gpio@0 { | 50 | gpiom1: gpio@0 { |
41 | compatible = "mcp,mcp23s17"; | 51 | compatible = "microchip,mcp23s17"; |
42 | gpio-controller; | 52 | gpio-controller; |
43 | #gpio-cells = <2>; | 53 | #gpio-cells = <2>; |
44 | spi-present-mask = <0x01>; | 54 | spi-present-mask = <0x01>; |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt new file mode 100644 index 000000000000..08b5b52a3ae0 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | Palmas GPIO controller bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | - "ti,palams-gpio" for palma series of the GPIO controller | ||
6 | - "ti,tps80036-gpio" for Palma series device TPS80036. | ||
7 | - "ti,tps65913-gpio" for palma series device TPS65913. | ||
8 | - "ti,tps65914-gpio" for palma series device TPS65914. | ||
9 | - #gpio-cells : Should be two. | ||
10 | - first cell is the gpio pin number | ||
11 | - second cell is used to specify the gpio polarity: | ||
12 | 0 = active high | ||
13 | 1 = active low | ||
14 | - gpio-controller : Marks the device node as a GPIO controller. | ||
15 | |||
16 | Note: This gpio node will be sub node of palmas node. | ||
17 | |||
18 | Example: | ||
19 | palmas: tps65913@58 { | ||
20 | ::::::::::: | ||
21 | palmas_gpio: palmas_gpio { | ||
22 | compatible = "ti,palmas-gpio"; | ||
23 | gpio-controller; | ||
24 | #gpio-cells = <2>; | ||
25 | }; | ||
26 | ::::::::::: | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt new file mode 100644 index 000000000000..1fd98ffa8cb7 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt | |||
@@ -0,0 +1,45 @@ | |||
1 | ImgTec TZ1090 PDC GPIO Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Compatible property value should be "img,tz1090-pdc-gpio". | ||
5 | |||
6 | - reg: Physical base address of the controller and length of memory mapped | ||
7 | region. This starts at and cover the SOC_GPIO_CONTROL registers. | ||
8 | |||
9 | - gpio-controller: Specifies that the node is a gpio controller. | ||
10 | |||
11 | - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client | ||
12 | nodes should have the following values. | ||
13 | <[phandle of the gpio controller node] | ||
14 | [PDC gpio number] | ||
15 | [gpio flags]> | ||
16 | |||
17 | Values for gpio specifier: | ||
18 | - GPIO number: a value in the range 0 to 6. | ||
19 | - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. | ||
20 | Only the following flags are supported: | ||
21 | GPIO_ACTIVE_HIGH | ||
22 | GPIO_ACTIVE_LOW | ||
23 | |||
24 | Optional properties: | ||
25 | - gpio-ranges: Mapping to pin controller pins (as described in | ||
26 | Documentation/devicetree/bindings/gpio/gpio.txt) | ||
27 | |||
28 | - interrupts: Individual syswake interrupts (other GPIOs cannot interrupt) | ||
29 | |||
30 | |||
31 | Example: | ||
32 | |||
33 | pdc_gpios: gpio-controller@02006500 { | ||
34 | gpio-controller; | ||
35 | #gpio-cells = <2>; | ||
36 | |||
37 | compatible = "img,tz1090-pdc-gpio"; | ||
38 | reg = <0x02006500 0x100>; | ||
39 | |||
40 | interrupt-parent = <&pdc>; | ||
41 | interrupts = <8 IRQ_TYPE_NONE>, /* Syswake 0 */ | ||
42 | <9 IRQ_TYPE_NONE>, /* Syswake 1 */ | ||
43 | <10 IRQ_TYPE_NONE>; /* Syswake 2 */ | ||
44 | gpio-ranges = <&pdc_pinctrl 0 0 7>; | ||
45 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt new file mode 100644 index 000000000000..174cdf309170 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt | |||
@@ -0,0 +1,88 @@ | |||
1 | ImgTec TZ1090 GPIO Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Compatible property value should be "img,tz1090-gpio". | ||
5 | |||
6 | - reg: Physical base address of the controller and length of memory mapped | ||
7 | region. | ||
8 | |||
9 | - #address-cells: Should be 1 (for bank subnodes) | ||
10 | |||
11 | - #size-cells: Should be 0 (for bank subnodes) | ||
12 | |||
13 | - Each bank of GPIOs should have a subnode to represent it. | ||
14 | |||
15 | Bank subnode required properties: | ||
16 | - reg: Index of bank in the range 0 to 2. | ||
17 | |||
18 | - gpio-controller: Specifies that the node is a gpio controller. | ||
19 | |||
20 | - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client | ||
21 | nodes should have the following values. | ||
22 | <[phandle of the gpio controller node] | ||
23 | [gpio number within the gpio bank] | ||
24 | [gpio flags]> | ||
25 | |||
26 | Values for gpio specifier: | ||
27 | - GPIO number: a value in the range 0 to 29. | ||
28 | - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. | ||
29 | Only the following flags are supported: | ||
30 | GPIO_ACTIVE_HIGH | ||
31 | GPIO_ACTIVE_LOW | ||
32 | |||
33 | Bank subnode optional properties: | ||
34 | - gpio-ranges: Mapping to pin controller pins (as described in | ||
35 | Documentation/devicetree/bindings/gpio/gpio.txt) | ||
36 | |||
37 | - interrupts: Interrupt for the entire bank | ||
38 | |||
39 | - interrupt-controller: Specifies that the node is an interrupt controller | ||
40 | |||
41 | - #interrupt-cells: Should be 2. The syntax of the interrupt specifier used by | ||
42 | client nodes should have the following values. | ||
43 | <[phandle of the interurupt controller] | ||
44 | [gpio number within the gpio bank] | ||
45 | [irq flags]> | ||
46 | |||
47 | Values for irq specifier: | ||
48 | - GPIO number: a value in the range 0 to 29 | ||
49 | - IRQ flags: value to describe edge and level triggering, as defined in | ||
50 | <dt-bindings/interrupt-controller/irq.h>. Only the following flags are | ||
51 | supported: | ||
52 | IRQ_TYPE_EDGE_RISING | ||
53 | IRQ_TYPE_EDGE_FALLING | ||
54 | IRQ_TYPE_EDGE_BOTH | ||
55 | IRQ_TYPE_LEVEL_HIGH | ||
56 | IRQ_TYPE_LEVEL_LOW | ||
57 | |||
58 | |||
59 | |||
60 | Example: | ||
61 | |||
62 | gpios: gpio-controller@02005800 { | ||
63 | #address-cells = <1>; | ||
64 | #size-cells = <0>; | ||
65 | compatible = "img,tz1090-gpio"; | ||
66 | reg = <0x02005800 0x90>; | ||
67 | |||
68 | /* bank 0 with an interrupt */ | ||
69 | gpios0: bank@0 { | ||
70 | #gpio-cells = <2>; | ||
71 | #interrupt-cells = <2>; | ||
72 | reg = <0>; | ||
73 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; | ||
74 | gpio-controller; | ||
75 | gpio-ranges = <&pinctrl 0 0 30>; | ||
76 | interrupt-controller; | ||
77 | }; | ||
78 | |||
79 | /* bank 2 without interrupt */ | ||
80 | gpios2: bank@2 { | ||
81 | #gpio-cells = <2>; | ||
82 | reg = <2>; | ||
83 | gpio-controller; | ||
84 | gpio-ranges = <&pinctrl 0 60 30>; | ||
85 | }; | ||
86 | }; | ||
87 | |||
88 | |||
diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index d933af370697..6cec6ff20d2e 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt | |||
@@ -75,23 +75,36 @@ Example of two SOC GPIO banks defined as gpio-controller nodes: | |||
75 | gpio-controller; | 75 | gpio-controller; |
76 | }; | 76 | }; |
77 | 77 | ||
78 | 2.1) gpio-controller and pinctrl subsystem | 78 | 2.1) gpio- and pin-controller interaction |
79 | ------------------------------------------ | 79 | ----------------------------------------- |
80 | 80 | ||
81 | gpio-controller on a SOC might be tightly coupled with the pinctrl | 81 | Some or all of the GPIOs provided by a GPIO controller may be routed to pins |
82 | subsystem, in the sense that the pins can be used by other functions | 82 | on the package via a pin controller. This allows muxing those pins between |
83 | together with optional gpio feature. | 83 | GPIO and other functions. |
84 | 84 | ||
85 | While the pin allocation is totally managed by the pin ctrl subsystem, | 85 | It is useful to represent which GPIOs correspond to which pins on which pin |
86 | gpio (under gpiolib) is still maintained by gpio drivers. It may happen | 86 | controllers. The gpio-ranges property described below represents this, and |
87 | that different pin ranges in a SoC is managed by different gpio drivers. | 87 | contains information structures as follows: |
88 | 88 | ||
89 | This makes it logical to let gpio drivers announce their pin ranges to | 89 | gpio-range-list ::= <single-gpio-range> [gpio-range-list] |
90 | the pin ctrl subsystem and call 'pinctrl_request_gpio' in order to | 90 | single-gpio-range ::= |
91 | request the corresponding pin before any gpio usage. | 91 | <pinctrl-phandle> <gpio-base> <pinctrl-base> <count> |
92 | gpio-phandle : phandle to pin controller node. | ||
93 | gpio-base : Base GPIO ID in the GPIO controller | ||
94 | pinctrl-base : Base pinctrl pin ID in the pin controller | ||
95 | count : The number of GPIOs/pins in this range | ||
92 | 96 | ||
93 | For this, the gpio controller can use a pinctrl phandle and pins to | 97 | The "pin controller node" mentioned above must conform to the bindings |
94 | announce the pinrange to the pin ctrl subsystem. For example, | 98 | described in ../pinctrl/pinctrl-bindings.txt. |
99 | |||
100 | Previous versions of this binding required all pin controller nodes that | ||
101 | were referenced by any gpio-ranges property to contain a property named | ||
102 | #gpio-range-cells with value <3>. This requirement is now deprecated. | ||
103 | However, that property may still exist in older device trees for | ||
104 | compatibility reasons, and would still be required even in new device | ||
105 | trees that need to be compatible with older software. | ||
106 | |||
107 | Example: | ||
95 | 108 | ||
96 | qe_pio_e: gpio-controller@1460 { | 109 | qe_pio_e: gpio-controller@1460 { |
97 | #gpio-cells = <2>; | 110 | #gpio-cells = <2>; |
@@ -99,16 +112,8 @@ announce the pinrange to the pin ctrl subsystem. For example, | |||
99 | reg = <0x1460 0x18>; | 112 | reg = <0x1460 0x18>; |
100 | gpio-controller; | 113 | gpio-controller; |
101 | gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>; | 114 | gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>; |
115 | }; | ||
102 | 116 | ||
103 | } | 117 | Here, a single GPIO controller has GPIOs 0..9 routed to pin controller |
104 | 118 | pinctrl1's pins 20..29, and GPIOs 10..19 routed to pin controller pinctrl2's | |
105 | where, | 119 | pins 50..59. |
106 | &pinctrl1 and &pinctrl2 is the phandle to the pinctrl DT node. | ||
107 | |||
108 | Next values specify the base pin and number of pins for the range | ||
109 | handled by 'qe_pio_e' gpio. In the given example from base pin 20 to | ||
110 | pin 29 under pinctrl1 with gpio offset 0 and pin 50 to pin 69 under | ||
111 | pinctrl2 with gpio offset 10 is handled by this gpio controller. | ||
112 | |||
113 | The pinctrl node must have "#gpio-range-cells" property to show number of | ||
114 | arguments to pass with phandle from gpio controllers node. | ||
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt index 9b3f1d4a88d6..66416261e14d 100644 --- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt | |||
@@ -10,8 +10,9 @@ Required properties: | |||
10 | There're three gpio interrupts in arch-pxa, and they're gpio0, | 10 | There're three gpio interrupts in arch-pxa, and they're gpio0, |
11 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, | 11 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, |
12 | gpio_mux. | 12 | gpio_mux. |
13 | - interrupt-name : Should be the name of irq resource. Each interrupt | 13 | - interrupt-names : Should be the names of irq resources. Each interrupt |
14 | binds its interrupt-name. | 14 | uses its own interrupt name, so there should be as many interrupt names |
15 | as referenced interrups. | ||
15 | - interrupt-controller : Identifies the node as an interrupt controller. | 16 | - interrupt-controller : Identifies the node as an interrupt controller. |
16 | - #interrupt-cells: Specifies the number of cells needed to encode an | 17 | - #interrupt-cells: Specifies the number of cells needed to encode an |
17 | interrupt source. | 18 | interrupt source. |
@@ -24,7 +25,7 @@ Example: | |||
24 | compatible = "marvell,mmp-gpio"; | 25 | compatible = "marvell,mmp-gpio"; |
25 | reg = <0xd4019000 0x1000>; | 26 | reg = <0xd4019000 0x1000>; |
26 | interrupts = <49>; | 27 | interrupts = <49>; |
27 | interrupt-name = "gpio_mux"; | 28 | interrupt-names = "gpio_mux"; |
28 | gpio-controller; | 29 | gpio-controller; |
29 | #gpio-cells = <1>; | 30 | #gpio-cells = <1>; |
30 | interrupt-controller; | 31 | interrupt-controller; |
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index cb3dc7bcd8e6..8655df9440d5 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | |||
@@ -23,6 +23,10 @@ Required Properties: | |||
23 | Please refer to gpio.txt in this directory for details of gpio-ranges property | 23 | Please refer to gpio.txt in this directory for details of gpio-ranges property |
24 | and the common GPIO bindings used by client devices. | 24 | and the common GPIO bindings used by client devices. |
25 | 25 | ||
26 | The GPIO controller also acts as an interrupt controller. It uses the default | ||
27 | two cells specifier as described in Documentation/devicetree/bindings/ | ||
28 | interrupt-controller/interrupts.txt. | ||
29 | |||
26 | Example: R8A7779 (R-Car H1) GPIO controller nodes | 30 | Example: R8A7779 (R-Car H1) GPIO controller nodes |
27 | 31 | ||
28 | gpio0: gpio@ffc40000 { | 32 | gpio0: gpio@ffc40000 { |
@@ -33,6 +37,8 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes | |||
33 | #gpio-cells = <2>; | 37 | #gpio-cells = <2>; |
34 | gpio-controller; | 38 | gpio-controller; |
35 | gpio-ranges = <&pfc 0 0 32>; | 39 | gpio-ranges = <&pfc 0 0 32>; |
40 | interrupt-controller; | ||
41 | #interrupt-cells = <2>; | ||
36 | }; | 42 | }; |
37 | ... | 43 | ... |
38 | gpio6: gpio@ffc46000 { | 44 | gpio6: gpio@ffc46000 { |
@@ -43,4 +49,6 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes | |||
43 | #gpio-cells = <2>; | 49 | #gpio-cells = <2>; |
44 | gpio-controller; | 50 | gpio-controller; |
45 | gpio-ranges = <&pfc 0 192 9>; | 51 | gpio-ranges = <&pfc 0 192 9>; |
52 | interrupt-controller; | ||
53 | #interrupt-cells = <2>; | ||
46 | }; | 54 | }; |
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt index 3f454ffc654a..c4f358dafdaa 100644 --- a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt +++ b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt | |||
@@ -11,8 +11,11 @@ Required properties: | |||
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. | 13 | - clocks : from common clock binding: handle to G2D clocks. |
14 | - clock-names : from common clock binding: must contain "sclk_fimg2d" and | 14 | - clock-names : names of clocks listed in clocks property, in the same |
15 | "fimg2d", corresponding to entries in the clocks property. | 15 | order, depending on SoC type: |
16 | - for S5PV210 and Exynos4 based SoCs: "fimg2d" and | ||
17 | "sclk_fimg2d" | ||
18 | - for Exynos5250 SoC: "fimg2d". | ||
16 | 19 | ||
17 | Example: | 20 | Example: |
18 | g2d@12800000 { | 21 | g2d@12800000 { |
diff --git a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt new file mode 100644 index 000000000000..82cd1ed0be93 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | * Samsung Image Rotator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : value should be one of the following: | ||
5 | (a) "samsung,exynos4210-rotator" for Rotator IP in Exynos4210 | ||
6 | (b) "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412 | ||
7 | (c) "samsung,exynos5250-rotator" for Rotator IP in Exynos5250 | ||
8 | |||
9 | - reg : Physical base address of the IP registers and length of memory | ||
10 | mapped region. | ||
11 | |||
12 | - interrupts : Interrupt specifier for rotator interrupt, according to format | ||
13 | specific to interrupt parent. | ||
14 | |||
15 | - clocks : Clock specifier for rotator clock, according to generic clock | ||
16 | bindings. (See Documentation/devicetree/bindings/clock/exynos*.txt) | ||
17 | |||
18 | - clock-names : Names of clocks. For exynos rotator, it should be "rotator". | ||
19 | |||
20 | Example: | ||
21 | rotator@12810000 { | ||
22 | compatible = "samsung,exynos4210-rotator"; | ||
23 | reg = <0x12810000 0x1000>; | ||
24 | interrupts = <0 83 0>; | ||
25 | clocks = <&clock 278>; | ||
26 | clock-names = "rotator"; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/hid/hid-over-i2c.txt b/Documentation/devicetree/bindings/hid/hid-over-i2c.txt new file mode 100644 index 000000000000..488edcb264c4 --- /dev/null +++ b/Documentation/devicetree/bindings/hid/hid-over-i2c.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | * HID over I2C Device-Tree bindings | ||
2 | |||
3 | HID over I2C provides support for various Human Interface Devices over the | ||
4 | I2C bus. These devices can be for example touchpads, keyboards, touch screens | ||
5 | or sensors. | ||
6 | |||
7 | The specification has been written by Microsoft and is currently available here: | ||
8 | http://msdn.microsoft.com/en-us/library/windows/hardware/hh852380.aspx | ||
9 | |||
10 | If this binding is used, the kernel module i2c-hid will handle the communication | ||
11 | with the device and the generic hid core layer will handle the protocol. | ||
12 | |||
13 | Required properties: | ||
14 | - compatible: must be "hid-over-i2c" | ||
15 | - reg: i2c slave address | ||
16 | - hid-descr-addr: HID descriptor address | ||
17 | - interrupt-parent: the phandle for the interrupt controller | ||
18 | - interrupts: interrupt line | ||
19 | |||
20 | Example: | ||
21 | |||
22 | i2c-hid-dev@2c { | ||
23 | compatible = "hid-over-i2c"; | ||
24 | reg = <0x2c>; | ||
25 | hid-descr-addr = <0x0020>; | ||
26 | interrupt-parent = <&gpx3>; | ||
27 | interrupts = <3 2>; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-imx.txt b/Documentation/devicetree/bindings/i2c/i2c-imx.txt index 3614242e7732..4a8513e44740 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-imx.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-imx.txt | |||
@@ -1,7 +1,10 @@ | |||
1 | * Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX | 1 | * Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "fsl,<chip>-i2c" | 4 | - compatible : |
5 | - "fsl,imx1-i2c" for I2C compatible with the one integrated on i.MX1 SoC | ||
6 | - "fsl,imx21-i2c" for I2C compatible with the one integrated on i.MX21 SoC | ||
7 | - "fsl,vf610-i2c" for I2C compatible with the one integrated on Vybrid vf610 SoC | ||
5 | - reg : Should contain I2C/HS-I2C registers location and length | 8 | - reg : Should contain I2C/HS-I2C registers location and length |
6 | - interrupts : Should contain I2C/HS-I2C interrupt | 9 | - interrupts : Should contain I2C/HS-I2C interrupt |
7 | 10 | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt index 6113f9275f42..82e8f6f17179 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | |||
@@ -5,6 +5,7 @@ Required properties : | |||
5 | 5 | ||
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" or "allwinner,sun4i-i2c" | 7 | - compatible : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c" |
8 | or "marvell,mv78230-i2c" | ||
8 | - interrupts : The interrupt number | 9 | - interrupts : The interrupt number |
9 | 10 | ||
10 | Optional properties : | 11 | Optional properties : |
@@ -20,3 +21,12 @@ Examples: | |||
20 | interrupts = <29>; | 21 | interrupts = <29>; |
21 | clock-frequency = <100000>; | 22 | clock-frequency = <100000>; |
22 | }; | 23 | }; |
24 | |||
25 | For the Armada XP: | ||
26 | |||
27 | i2c@11000 { | ||
28 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; | ||
29 | reg = <0x11000 0x100>; | ||
30 | interrupts = <29>; | ||
31 | clock-frequency = <100000>; | ||
32 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/accel/bma180.txt b/Documentation/devicetree/bindings/iio/accel/bma180.txt new file mode 100644 index 000000000000..c5933573e0f6 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/accel/bma180.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | * Bosch BMA180 triaxial acceleration sensor | ||
2 | |||
3 | http://omapworld.com/BMA180_111_1002839.pdf | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : should be "bosch,bma180" | ||
8 | - reg : the I2C address of the sensor | ||
9 | |||
10 | Optional properties: | ||
11 | |||
12 | - interrupt-parent : should be the phandle for the interrupt controller | ||
13 | |||
14 | - interrupts : interrupt mapping for GPIO IRQ, it should by configured with | ||
15 | flags IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING | ||
16 | |||
17 | Example: | ||
18 | |||
19 | bma180@40 { | ||
20 | compatible = "bosch,bma180"; | ||
21 | reg = <0x40>; | ||
22 | interrupt-parent = <&gpio6>; | ||
23 | interrupts = <18 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt b/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt new file mode 100644 index 000000000000..e9582e6fe350 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | * Nuvoton NAU7802 Analog to Digital Converter (ADC) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "nuvoton,nau7802" | ||
5 | - reg: Should contain the ADC I2C address | ||
6 | |||
7 | Optional properties: | ||
8 | - nuvoton,vldo: Internal reference voltage in millivolts to be | ||
9 | configured valid values are between 2400 mV and 4500 mV. | ||
10 | - interrupts: IRQ line for the ADC. If not used the driver will use | ||
11 | polling. | ||
12 | |||
13 | Example: | ||
14 | adc2: nau7802@2a { | ||
15 | compatible = "nuvoton,nau7802"; | ||
16 | reg = <0x2a>; | ||
17 | nuvoton,vldo = <3000>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/light/apds9300.txt b/Documentation/devicetree/bindings/iio/light/apds9300.txt new file mode 100644 index 000000000000..d6f66c73ddbf --- /dev/null +++ b/Documentation/devicetree/bindings/iio/light/apds9300.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | * Avago APDS9300 ambient light sensor | ||
2 | |||
3 | http://www.avagotech.com/docs/AV02-1077EN | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : should be "avago,apds9300" | ||
8 | - reg : the I2C address of the sensor | ||
9 | |||
10 | Optional properties: | ||
11 | |||
12 | - interrupt-parent : should be the phandle for the interrupt controller | ||
13 | - interrupts : interrupt mapping for GPIO IRQ | ||
14 | |||
15 | Example: | ||
16 | |||
17 | apds9300@39 { | ||
18 | compatible = "avago,apds9300"; | ||
19 | reg = <0x39>; | ||
20 | interrupt-parent = <&gpio2>; | ||
21 | interrupts = <29 8>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/input-reset.txt b/Documentation/devicetree/bindings/input/input-reset.txt new file mode 100644 index 000000000000..2bb2626fdb78 --- /dev/null +++ b/Documentation/devicetree/bindings/input/input-reset.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | Input: sysrq reset sequence | ||
2 | |||
3 | A simple binding to represent a set of keys as described in | ||
4 | include/uapi/linux/input.h. This is to communicate a sequence of keys to the | ||
5 | sysrq driver. Upon holding the keys for a specified amount of time (if | ||
6 | specified) the system is sync'ed and reset. | ||
7 | |||
8 | Key sequences are global to the system but all the keys in a set must be coming | ||
9 | from the same input device. | ||
10 | |||
11 | The /chosen node should contain a 'linux,sysrq-reset-seq' child node to define | ||
12 | a set of keys. | ||
13 | |||
14 | Required property: | ||
15 | sysrq-reset-seq: array of Linux keycodes, one keycode per cell. | ||
16 | |||
17 | Optional property: | ||
18 | timeout-ms: duration keys must be pressed together in milliseconds before | ||
19 | generating a sysrq. If omitted the system is rebooted immediately when a valid | ||
20 | sequence has been recognized. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | chosen { | ||
25 | linux,sysrq-reset-seq { | ||
26 | keyset = <0x03 | ||
27 | 0x04 | ||
28 | 0x0a>; | ||
29 | timeout-ms = <3000>; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | Would represent KEY_2, KEY_3 and KEY_9. | ||
diff --git a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt index df70318a617f..49fa14ed155c 100644 --- a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt +++ b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt | |||
@@ -6,7 +6,7 @@ Required properties: | |||
6 | - interrupt-parent: the phandle for the interrupt controller | 6 | - interrupt-parent: the phandle for the interrupt controller |
7 | - interrupts: touch controller interrupt | 7 | - interrupts: touch controller interrupt |
8 | - wakeup-gpios: the gpio pin to be used for waking up the controller | 8 | - wakeup-gpios: the gpio pin to be used for waking up the controller |
9 | as well as uased as irq pin | 9 | and also used as irq pin |
10 | 10 | ||
11 | Example: | 11 | Example: |
12 | 12 | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/adv7343.txt b/Documentation/devicetree/bindings/media/i2c/adv7343.txt new file mode 100644 index 000000000000..5653bc2428b8 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/adv7343.txt | |||
@@ -0,0 +1,48 @@ | |||
1 | * Analog Devices adv7343 video encoder | ||
2 | |||
3 | The ADV7343 are high speed, digital-to-analog video encoders in a 64-lead LQFP | ||
4 | package. Six high speed, 3.3 V, 11-bit video DACs provide support for composite | ||
5 | (CVBS), S-Video (Y-C), and component (YPrPb/RGB) analog outputs in standard | ||
6 | definition (SD), enhanced definition (ED), or high definition (HD) video | ||
7 | formats. | ||
8 | |||
9 | Required Properties : | ||
10 | - compatible: Must be "adi,adv7343" | ||
11 | |||
12 | Optional Properties : | ||
13 | - adi,power-mode-sleep-mode: on enable the current consumption is reduced to | ||
14 | micro ampere level. All DACs and the internal PLL | ||
15 | circuit are disabled. | ||
16 | - adi,power-mode-pll-ctrl: PLL and oversampling control. This control allows | ||
17 | internal PLL 1 circuit to be powered down and the | ||
18 | oversampling to be switched off. | ||
19 | - ad,adv7343-power-mode-dac: array configuring the power on/off DAC's 1..6, | ||
20 | 0 = OFF and 1 = ON, Default value when this | ||
21 | property is not specified is <0 0 0 0 0 0>. | ||
22 | - ad,adv7343-sd-config-dac-out: array configure SD DAC Output's 1 and 2, 0 = OFF | ||
23 | and 1 = ON, Default value when this property is | ||
24 | not specified is <0 0>. | ||
25 | |||
26 | Example: | ||
27 | |||
28 | i2c0@1c22000 { | ||
29 | ... | ||
30 | ... | ||
31 | |||
32 | adv7343@2a { | ||
33 | compatible = "adi,adv7343"; | ||
34 | reg = <0x2a>; | ||
35 | |||
36 | port { | ||
37 | adv7343_1: endpoint { | ||
38 | adi,power-mode-sleep-mode; | ||
39 | adi,power-mode-pll-ctrl; | ||
40 | /* Use DAC1..3, DAC6 */ | ||
41 | adi,dac-enable = <1 1 1 0 0 1>; | ||
42 | /* Use SD DAC output 1 */ | ||
43 | adi,sd-dac-enable = <1 0>; | ||
44 | }; | ||
45 | }; | ||
46 | }; | ||
47 | ... | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/ths8200.txt b/Documentation/devicetree/bindings/media/i2c/ths8200.txt new file mode 100644 index 000000000000..285f6ae7dfa9 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/ths8200.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | * Texas Instruments THS8200 video encoder | ||
2 | |||
3 | The ths8200 device is a digital to analog converter used in DVD players, video | ||
4 | recorders, set-top boxes. | ||
5 | |||
6 | Required Properties : | ||
7 | - compatible : value must be "ti,ths8200" | ||
8 | |||
9 | Example: | ||
10 | |||
11 | i2c0@1c22000 { | ||
12 | ... | ||
13 | ... | ||
14 | ths8200@5c { | ||
15 | compatible = "ti,ths8200"; | ||
16 | reg = <0x5c>; | ||
17 | }; | ||
18 | ... | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/tvp7002.txt b/Documentation/devicetree/bindings/media/i2c/tvp7002.txt new file mode 100644 index 000000000000..5f28b5d9abcc --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/tvp7002.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | * Texas Instruments TV7002 video decoder | ||
2 | |||
3 | The TVP7002 device supports digitizing of video and graphics signal in RGB and | ||
4 | YPbPr color space. | ||
5 | |||
6 | Required Properties : | ||
7 | - compatible : Must be "ti,tvp7002" | ||
8 | |||
9 | Optional Properties: | ||
10 | - hsync-active: HSYNC Polarity configuration for the bus. Default value when | ||
11 | this property is not specified is <0>. | ||
12 | |||
13 | - vsync-active: VSYNC Polarity configuration for the bus. Default value when | ||
14 | this property is not specified is <0>. | ||
15 | |||
16 | - pclk-sample: Clock polarity of the bus. Default value when this property is | ||
17 | not specified is <0>. | ||
18 | |||
19 | - sync-on-green-active: Active state of Sync-on-green signal property of the | ||
20 | endpoint. | ||
21 | 0 = Normal Operation (Active Low, Default) | ||
22 | 1 = Inverted operation | ||
23 | |||
24 | - field-even-active: Active-high Field ID output polarity control of the bus. | ||
25 | Under normal operation, the field ID output is set to logic 1 for an odd field | ||
26 | (field 1) and set to logic 0 for an even field (field 0). | ||
27 | 0 = Normal Operation (Active Low, Default) | ||
28 | 1 = FID output polarity inverted | ||
29 | |||
30 | For further reading of port node refer Documentation/devicetree/bindings/media/ | ||
31 | video-interfaces.txt. | ||
32 | |||
33 | Example: | ||
34 | |||
35 | i2c0@1c22000 { | ||
36 | ... | ||
37 | ... | ||
38 | tvp7002@5c { | ||
39 | compatible = "ti,tvp7002"; | ||
40 | reg = <0x5c>; | ||
41 | |||
42 | port { | ||
43 | tvp7002_1: endpoint { | ||
44 | hsync-active = <1>; | ||
45 | vsync-active = <1>; | ||
46 | pclk-sample = <0>; | ||
47 | sync-on-green-active = <1>; | ||
48 | field-even-active = <0>; | ||
49 | }; | ||
50 | }; | ||
51 | }; | ||
52 | ... | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt index df37b0230c75..f4181680831b 100644 --- a/Documentation/devicetree/bindings/media/s5p-mfc.txt +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt | |||
@@ -10,14 +10,15 @@ Required properties: | |||
10 | - compatible : value should be either one among the following | 10 | - compatible : value should be either one among the following |
11 | (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs | 11 | (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs |
12 | (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs | 12 | (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs |
13 | (b) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC | ||
13 | 14 | ||
14 | - reg : Physical base address of the IP registers and length of memory | 15 | - reg : Physical base address of the IP registers and length of memory |
15 | mapped region. | 16 | mapped region. |
16 | 17 | ||
17 | - interrupts : MFC interrupt number to the CPU. | 18 | - interrupts : MFC interrupt number to the CPU. |
18 | - clocks : from common clock binding: handle to mfc clocks. | 19 | - clocks : from common clock binding: handle to mfc clock. |
19 | - clock-names : from common clock binding: must contain "sclk_mfc" and "mfc", | 20 | - clock-names : from common clock binding: must contain "mfc", |
20 | corresponding to entries in the clocks property. | 21 | corresponding to entry in the clocks property. |
21 | 22 | ||
22 | - samsung,mfc-r : Base address of the first memory bank used by MFC | 23 | - samsung,mfc-r : Base address of the first memory bank used by MFC |
23 | for DMA contiguous memory allocation and its size. | 24 | for DMA contiguous memory allocation and its size. |
@@ -37,8 +38,8 @@ mfc: codec@13400000 { | |||
37 | reg = <0x13400000 0x10000>; | 38 | reg = <0x13400000 0x10000>; |
38 | interrupts = <0 94 0>; | 39 | interrupts = <0 94 0>; |
39 | samsung,power-domain = <&pd_mfc>; | 40 | samsung,power-domain = <&pd_mfc>; |
40 | clocks = <&clock 170>, <&clock 273>; | 41 | clocks = <&clock 273>; |
41 | clock-names = "sclk_mfc", "mfc"; | 42 | clock-names = "mfc"; |
42 | }; | 43 | }; |
43 | 44 | ||
44 | Board specific DT entry: | 45 | Board specific DT entry: |
diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt index e022d2dc4962..ce719f89dd1c 100644 --- a/Documentation/devicetree/bindings/media/video-interfaces.txt +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt | |||
@@ -88,6 +88,8 @@ Optional endpoint properties | |||
88 | - field-even-active: field signal level during the even field data transmission. | 88 | - field-even-active: field signal level during the even field data transmission. |
89 | - pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock | 89 | - pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock |
90 | signal. | 90 | signal. |
91 | - sync-on-green-active: active state of Sync-on-green (SoG) signal, 0/1 for | ||
92 | LOW/HIGH respectively. | ||
91 | - data-lanes: an array of physical data lane indexes. Position of an entry | 93 | - data-lanes: an array of physical data lane indexes. Position of an entry |
92 | determines the logical lane number, while the value of an entry indicates | 94 | determines the logical lane number, while the value of an entry indicates |
93 | physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have | 95 | physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have |
diff --git a/Documentation/devicetree/bindings/memory.txt b/Documentation/devicetree/bindings/memory.txt new file mode 100644 index 000000000000..eb2469365593 --- /dev/null +++ b/Documentation/devicetree/bindings/memory.txt | |||
@@ -0,0 +1,168 @@ | |||
1 | *** Memory binding *** | ||
2 | |||
3 | The /memory node provides basic information about the address and size | ||
4 | of the physical memory. This node is usually filled or updated by the | ||
5 | bootloader, depending on the actual memory configuration of the given | ||
6 | hardware. | ||
7 | |||
8 | The memory layout is described by the following node: | ||
9 | |||
10 | / { | ||
11 | #address-cells = <(n)>; | ||
12 | #size-cells = <(m)>; | ||
13 | memory { | ||
14 | device_type = "memory"; | ||
15 | reg = <(baseaddr1) (size1) | ||
16 | (baseaddr2) (size2) | ||
17 | ... | ||
18 | (baseaddrN) (sizeN)>; | ||
19 | }; | ||
20 | ... | ||
21 | }; | ||
22 | |||
23 | A memory node follows the typical device tree rules for "reg" property: | ||
24 | n: number of cells used to store base address value | ||
25 | m: number of cells used to store size value | ||
26 | baseaddrX: defines a base address of the defined memory bank | ||
27 | sizeX: the size of the defined memory bank | ||
28 | |||
29 | |||
30 | More than one memory bank can be defined. | ||
31 | |||
32 | |||
33 | *** Reserved memory regions *** | ||
34 | |||
35 | In /memory/reserved-memory node one can create child nodes describing | ||
36 | particular reserved (excluded from normal use) memory regions. Such | ||
37 | memory regions are usually designed for the special usage by various | ||
38 | device drivers. A good example are contiguous memory allocations or | ||
39 | memory sharing with other operating system on the same hardware board. | ||
40 | Those special memory regions might depend on the board configuration and | ||
41 | devices used on the target system. | ||
42 | |||
43 | Parameters for each memory region can be encoded into the device tree | ||
44 | with the following convention: | ||
45 | |||
46 | [(label):] (name) { | ||
47 | compatible = "linux,contiguous-memory-region", "reserved-memory-region"; | ||
48 | reg = <(address) (size)>; | ||
49 | (linux,default-contiguous-region); | ||
50 | }; | ||
51 | |||
52 | compatible: one or more of: | ||
53 | - "linux,contiguous-memory-region" - enables binding of this | ||
54 | region to Contiguous Memory Allocator (special region for | ||
55 | contiguous memory allocations, shared with movable system | ||
56 | memory, Linux kernel-specific). | ||
57 | - "reserved-memory-region" - compatibility is defined, given | ||
58 | region is assigned for exclusive usage for by the respective | ||
59 | devices. | ||
60 | |||
61 | reg: standard property defining the base address and size of | ||
62 | the memory region | ||
63 | |||
64 | linux,default-contiguous-region: property indicating that the region | ||
65 | is the default region for all contiguous memory | ||
66 | allocations, Linux specific (optional) | ||
67 | |||
68 | It is optional to specify the base address, so if one wants to use | ||
69 | autoconfiguration of the base address, '0' can be specified as a base | ||
70 | address in the 'reg' property. | ||
71 | |||
72 | The /memory/reserved-memory node must contain the same #address-cells | ||
73 | and #size-cells value as the root node. | ||
74 | |||
75 | |||
76 | *** Device node's properties *** | ||
77 | |||
78 | Once regions in the /memory/reserved-memory node have been defined, they | ||
79 | may be referenced by other device nodes. Bindings that wish to reference | ||
80 | memory regions should explicitly document their use of the following | ||
81 | property: | ||
82 | |||
83 | memory-region = <&phandle_to_defined_region>; | ||
84 | |||
85 | This property indicates that the device driver should use the memory | ||
86 | region pointed by the given phandle. | ||
87 | |||
88 | |||
89 | *** Example *** | ||
90 | |||
91 | This example defines a memory consisting of 4 memory banks. 3 contiguous | ||
92 | regions are defined for Linux kernel, one default of all device drivers | ||
93 | (named contig_mem, placed at 0x72000000, 64MiB), one dedicated to the | ||
94 | framebuffer device (labelled display_mem, placed at 0x78000000, 8MiB) | ||
95 | and one for multimedia processing (labelled multimedia_mem, placed at | ||
96 | 0x77000000, 64MiB). 'display_mem' region is then assigned to fb@12300000 | ||
97 | device for DMA memory allocations (Linux kernel drivers will use CMA is | ||
98 | available or dma-exclusive usage otherwise). 'multimedia_mem' is | ||
99 | assigned to scaler@12500000 and codec@12600000 devices for contiguous | ||
100 | memory allocations when CMA driver is enabled. | ||
101 | |||
102 | The reason for creating a separate region for framebuffer device is to | ||
103 | match the framebuffer base address to the one configured by bootloader, | ||
104 | so once Linux kernel drivers starts no glitches on the displayed boot | ||
105 | logo appears. Scaller and codec drivers should share the memory | ||
106 | allocations. | ||
107 | |||
108 | / { | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <1>; | ||
111 | |||
112 | /* ... */ | ||
113 | |||
114 | memory { | ||
115 | reg = <0x40000000 0x10000000 | ||
116 | 0x50000000 0x10000000 | ||
117 | 0x60000000 0x10000000 | ||
118 | 0x70000000 0x10000000>; | ||
119 | |||
120 | reserved-memory { | ||
121 | #address-cells = <1>; | ||
122 | #size-cells = <1>; | ||
123 | |||
124 | /* | ||
125 | * global autoconfigured region for contiguous allocations | ||
126 | * (used only with Contiguous Memory Allocator) | ||
127 | */ | ||
128 | contig_region@0 { | ||
129 | compatible = "linux,contiguous-memory-region"; | ||
130 | reg = <0x0 0x4000000>; | ||
131 | linux,default-contiguous-region; | ||
132 | }; | ||
133 | |||
134 | /* | ||
135 | * special region for framebuffer | ||
136 | */ | ||
137 | display_region: region@78000000 { | ||
138 | compatible = "linux,contiguous-memory-region", "reserved-memory-region"; | ||
139 | reg = <0x78000000 0x800000>; | ||
140 | }; | ||
141 | |||
142 | /* | ||
143 | * special region for multimedia processing devices | ||
144 | */ | ||
145 | multimedia_region: region@77000000 { | ||
146 | compatible = "linux,contiguous-memory-region"; | ||
147 | reg = <0x77000000 0x4000000>; | ||
148 | }; | ||
149 | }; | ||
150 | }; | ||
151 | |||
152 | /* ... */ | ||
153 | |||
154 | fb0: fb@12300000 { | ||
155 | status = "okay"; | ||
156 | memory-region = <&display_region>; | ||
157 | }; | ||
158 | |||
159 | scaler: scaler@12500000 { | ||
160 | status = "okay"; | ||
161 | memory-region = <&multimedia_region>; | ||
162 | }; | ||
163 | |||
164 | codec: codec@12600000 { | ||
165 | status = "okay"; | ||
166 | memory-region = <&multimedia_region>; | ||
167 | }; | ||
168 | }; | ||
diff --git a/Documentation/devicetree/bindings/metag/pdc-intc.txt b/Documentation/devicetree/bindings/metag/pdc-intc.txt new file mode 100644 index 000000000000..a69118550344 --- /dev/null +++ b/Documentation/devicetree/bindings/metag/pdc-intc.txt | |||
@@ -0,0 +1,105 @@ | |||
1 | * ImgTec Powerdown Controller (PDC) Interrupt Controller Binding | ||
2 | |||
3 | This binding specifies what properties must be available in the device tree | ||
4 | representation of a PDC IRQ controller. This has a number of input interrupt | ||
5 | lines which can wake the system, and are passed on through output interrupt | ||
6 | lines. | ||
7 | |||
8 | Required properties: | ||
9 | |||
10 | - compatible: Specifies the compatibility list for the interrupt controller. | ||
11 | The type shall be <string> and the value shall include "img,pdc-intc". | ||
12 | |||
13 | - reg: Specifies the base PDC physical address(s) and size(s) of the | ||
14 | addressable register space. The type shall be <prop-encoded-array>. | ||
15 | |||
16 | - interrupt-controller: The presence of this property identifies the node | ||
17 | as an interrupt controller. No property value shall be defined. | ||
18 | |||
19 | - #interrupt-cells: Specifies the number of cells needed to encode an | ||
20 | interrupt source. The type shall be a <u32> and the value shall be 2. | ||
21 | |||
22 | - num-perips: Number of waking peripherals. | ||
23 | |||
24 | - num-syswakes: Number of SysWake inputs. | ||
25 | |||
26 | - interrupts: List of interrupt specifiers. The first specifier shall be the | ||
27 | shared SysWake interrupt, and remaining specifies shall be PDC peripheral | ||
28 | interrupts in order. | ||
29 | |||
30 | * Interrupt Specifier Definition | ||
31 | |||
32 | Interrupt specifiers consists of 2 cells encoded as follows: | ||
33 | |||
34 | - <1st-cell>: The interrupt-number that identifies the interrupt source. | ||
35 | 0-7: Peripheral interrupts | ||
36 | 8-15: SysWake interrupts | ||
37 | |||
38 | - <2nd-cell>: The level-sense information, encoded using the Linux interrupt | ||
39 | flags as follows (only 4 valid for peripheral interrupts): | ||
40 | 0 = none (decided by software) | ||
41 | 1 = low-to-high edge triggered | ||
42 | 2 = high-to-low edge triggered | ||
43 | 3 = both edge triggered | ||
44 | 4 = active-high level-sensitive (required for perip irqs) | ||
45 | 8 = active-low level-sensitive | ||
46 | |||
47 | * Examples | ||
48 | |||
49 | Example 1: | ||
50 | |||
51 | /* | ||
52 | * TZ1090 PDC block | ||
53 | */ | ||
54 | pdc: pdc@0x02006000 { | ||
55 | // This is an interrupt controller node. | ||
56 | interrupt-controller; | ||
57 | |||
58 | // Three cells to encode interrupt sources. | ||
59 | #interrupt-cells = <2>; | ||
60 | |||
61 | // Offset address of 0x02006000 and size of 0x1000. | ||
62 | reg = <0x02006000 0x1000>; | ||
63 | |||
64 | // Compatible with Meta hardware trigger block. | ||
65 | compatible = "img,pdc-intc"; | ||
66 | |||
67 | // Three peripherals are connected. | ||
68 | num-perips = <3>; | ||
69 | |||
70 | // Four SysWakes are connected. | ||
71 | num-syswakes = <4>; | ||
72 | |||
73 | interrupts = <18 4 /* level */>, /* Syswakes */ | ||
74 | <30 4 /* level */>, /* Peripheral 0 (RTC) */ | ||
75 | <29 4 /* level */>, /* Peripheral 1 (IR) */ | ||
76 | <31 4 /* level */>; /* Peripheral 2 (WDT) */ | ||
77 | }; | ||
78 | |||
79 | Example 2: | ||
80 | |||
81 | /* | ||
82 | * An SoC peripheral that is wired through the PDC. | ||
83 | */ | ||
84 | rtc0 { | ||
85 | // The interrupt controller that this device is wired to. | ||
86 | interrupt-parent = <&pdc>; | ||
87 | |||
88 | // Interrupt source Peripheral 0 | ||
89 | interrupts = <0 /* Peripheral 0 (RTC) */ | ||
90 | 4> /* IRQ_TYPE_LEVEL_HIGH */ | ||
91 | }; | ||
92 | |||
93 | Example 3: | ||
94 | |||
95 | /* | ||
96 | * An interrupt generating device that is wired to a SysWake pin. | ||
97 | */ | ||
98 | touchscreen0 { | ||
99 | // The interrupt controller that this device is wired to. | ||
100 | interrupt-parent = <&pdc>; | ||
101 | |||
102 | // Interrupt source SysWake 0 that is active-low level-sensitive | ||
103 | interrupts = <8 /* SysWake0 */ | ||
104 | 8 /* IRQ_TYPE_LEVEL_LOW */>; | ||
105 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.txt b/Documentation/devicetree/bindings/mfd/cros-ec.txt index e0e59c58a1f9..5f229c5f6da9 100644 --- a/Documentation/devicetree/bindings/mfd/cros-ec.txt +++ b/Documentation/devicetree/bindings/mfd/cros-ec.txt | |||
@@ -4,7 +4,7 @@ Google's ChromeOS EC is a Cortex-M device which talks to the AP and | |||
4 | implements various function such as keyboard and battery charging. | 4 | implements various function such as keyboard and battery charging. |
5 | 5 | ||
6 | The EC can be connect through various means (I2C, SPI, LPC) and the | 6 | The EC can be connect through various means (I2C, SPI, LPC) and the |
7 | compatible string used depends on the inteface. Each connection method has | 7 | compatible string used depends on the interface. Each connection method has |
8 | its own driver which connects to the top level interface-agnostic EC driver. | 8 | its own driver which connects to the top level interface-agnostic EC driver. |
9 | Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to | 9 | Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to |
10 | the top-level driver. | 10 | the top-level driver. |
diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt index 892537d1a48f..e5f0f8303461 100644 --- a/Documentation/devicetree/bindings/mfd/palmas.txt +++ b/Documentation/devicetree/bindings/mfd/palmas.txt | |||
@@ -5,6 +5,7 @@ twl6035 (palmas) | |||
5 | twl6037 (palmas) | 5 | twl6037 (palmas) |
6 | tps65913 (palmas) | 6 | tps65913 (palmas) |
7 | tps65914 (palmas) | 7 | tps65914 (palmas) |
8 | tps659038 | ||
8 | 9 | ||
9 | Required properties: | 10 | Required properties: |
10 | - compatible : Should be from the list | 11 | - compatible : Should be from the list |
@@ -14,6 +15,7 @@ Required properties: | |||
14 | ti,tps65913 | 15 | ti,tps65913 |
15 | ti,tps65914 | 16 | ti,tps65914 |
16 | ti,tps80036 | 17 | ti,tps80036 |
18 | ti,tps659038 | ||
17 | and also the generic series names | 19 | and also the generic series names |
18 | ti,palmas | 20 | ti,palmas |
19 | - interrupt-controller : palmas has its own internal IRQs | 21 | - interrupt-controller : palmas has its own internal IRQs |
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt new file mode 100644 index 000000000000..c9332c626021 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt | |||
@@ -0,0 +1,109 @@ | |||
1 | |||
2 | * Samsung S2MPS11 Voltage and Current Regulator | ||
3 | |||
4 | The Samsung S2MP211 is a multi-function device which includes voltage and | ||
5 | current regulators, RTC, charger controller and other sub-blocks. It is | ||
6 | interfaced to the host controller using a I2C interface. Each sub-block is | ||
7 | addressed by the host system using different I2C slave address. | ||
8 | |||
9 | Required properties: | ||
10 | - compatible: Should be "samsung,s2mps11-pmic". | ||
11 | - reg: Specifies the I2C slave address of the pmic block. It should be 0x66. | ||
12 | |||
13 | Optional properties: | ||
14 | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
15 | the interrupts from s2mps11 are delivered to. | ||
16 | - interrupts: Interrupt specifiers for interrupt sources. | ||
17 | |||
18 | Optional nodes: | ||
19 | - clocks: s2mps11 provides three(AP/CP/BT) buffered 32.768 KHz outputs, so to | ||
20 | register these as clocks with common clock framework instantiate a sub-node | ||
21 | named "clocks". It uses the common clock binding documented in : | ||
22 | [Documentation/devicetree/bindings/clock/clock-bindings.txt] | ||
23 | - #clock-cells: should be 1. | ||
24 | |||
25 | - The following is the list of clocks generated by the controller. Each clock | ||
26 | is assigned an identifier and client nodes use this identifier to specify | ||
27 | the clock which they consume. | ||
28 | Clock ID | ||
29 | ---------------------- | ||
30 | 32KhzAP 0 | ||
31 | 32KhzCP 1 | ||
32 | 32KhzBT 2 | ||
33 | |||
34 | - regulators: The regulators of s2mps11 that have to be instantiated should be | ||
35 | included in a sub-node named 'regulators'. Regulator nodes included in this | ||
36 | sub-node should be of the format as listed below. | ||
37 | |||
38 | regulator_name { | ||
39 | [standard regulator constraints....]; | ||
40 | }; | ||
41 | |||
42 | regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us | ||
43 | |||
44 | BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explictly | ||
45 | regulator-ramp-delay = <0> can be used for them to disable ramp delay. | ||
46 | In absence of regulator-ramp-delay property, default ramp delay will be used. | ||
47 | |||
48 | NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set | ||
49 | for a particular group of BUCKs. So provide same regulator-ramp-delay<value>. | ||
50 | Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6], | ||
51 | BUCK[3, 4], and BUCK[7, 8, 10] | ||
52 | |||
53 | The regulator constraints inside the regulator nodes use the standard regulator | ||
54 | bindings which are documented elsewhere. | ||
55 | |||
56 | The following are the names of the regulators that the s2mps11 pmic block | ||
57 | supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | ||
58 | as per the datasheet of s2mps11. | ||
59 | |||
60 | - LDOn | ||
61 | - valid values for n are 1 to 28 | ||
62 | - Example: LDO0, LD01, LDO28 | ||
63 | - BUCKn | ||
64 | - valid values for n are 1 to 9. | ||
65 | - Example: BUCK1, BUCK2, BUCK9 | ||
66 | |||
67 | Example: | ||
68 | |||
69 | s2mps11_pmic@66 { | ||
70 | compatible = "samsung,s2mps11-pmic"; | ||
71 | reg = <0x66>; | ||
72 | |||
73 | s2m_osc: clocks{ | ||
74 | #clock-cells = 1; | ||
75 | clock-output-names = "xx", "yy", "zz"; | ||
76 | }; | ||
77 | |||
78 | regulators { | ||
79 | ldo1_reg: LDO1 { | ||
80 | regulator-name = "VDD_ABB_3.3V"; | ||
81 | regulator-min-microvolt = <3300000>; | ||
82 | regulator-max-microvolt = <3300000>; | ||
83 | }; | ||
84 | |||
85 | ldo2_reg: LDO2 { | ||
86 | regulator-name = "VDD_ALIVE_1.1V"; | ||
87 | regulator-min-microvolt = <1100000>; | ||
88 | regulator-max-microvolt = <1100000>; | ||
89 | regulator-always-on; | ||
90 | }; | ||
91 | |||
92 | buck1_reg: BUCK1 { | ||
93 | regulator-name = "vdd_mif"; | ||
94 | regulator-min-microvolt = <950000>; | ||
95 | regulator-max-microvolt = <1350000>; | ||
96 | regulator-always-on; | ||
97 | regulator-boot-on; | ||
98 | }; | ||
99 | |||
100 | buck2_reg: BUCK2 { | ||
101 | regulator-name = "vdd_arm"; | ||
102 | regulator-min-microvolt = <950000>; | ||
103 | regulator-max-microvolt = <1350000>; | ||
104 | regulator-always-on; | ||
105 | regulator-boot-on; | ||
106 | regulator-ramp-delay = <50000>; | ||
107 | }; | ||
108 | }; | ||
109 | }; | ||
diff --git a/Documentation/devicetree/bindings/misc/smc.txt b/Documentation/devicetree/bindings/misc/smc.txt index 02b428136177..6c9f176f3571 100644 --- a/Documentation/devicetree/bindings/misc/smc.txt +++ b/Documentation/devicetree/bindings/misc/smc.txt | |||
@@ -4,11 +4,12 @@ This binding defines the location of the bounce buffer | |||
4 | used for non-secure to secure communications. | 4 | used for non-secure to secure communications. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : "bcm,kona-smc" | 7 | - compatible : "brcm,kona-smc" |
8 | - DEPRECATED: compatible : "bcm,kona-smc" | ||
8 | - reg : Location and size of bounce buffer | 9 | - reg : Location and size of bounce buffer |
9 | 10 | ||
10 | Example: | 11 | Example: |
11 | smc@0x3404c000 { | 12 | smc@0x3404c000 { |
12 | compatible = "bcm,bcm11351-smc", "bcm,kona-smc"; | 13 | compatible = "brcm,bcm11351-smc", "brcm,kona-smc"; |
13 | reg = <0x3404c000 0x400>; //1 KiB in SRAM | 14 | reg = <0x3404c000 0x400>; //1 KiB in SRAM |
14 | }; | 15 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt index bd9be0b5bc20..b7943f3f9995 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +++ b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | |||
@@ -19,6 +19,9 @@ Optional properties: | |||
19 | "bus-width = <1>" property. | 19 | "bus-width = <1>" property. |
20 | - sdhci,auto-cmd12: specifies that a controller can only handle auto | 20 | - sdhci,auto-cmd12: specifies that a controller can only handle auto |
21 | CMD12. | 21 | CMD12. |
22 | - voltage-ranges : two cells are required, first cell specifies minimum | ||
23 | slot voltage (mV), second cell specifies maximum slot voltage (mV). | ||
24 | Several ranges could be specified. | ||
22 | 25 | ||
23 | Example: | 26 | Example: |
24 | 27 | ||
@@ -29,4 +32,5 @@ sdhci@2e000 { | |||
29 | interrupt-parent = <&ipic>; | 32 | interrupt-parent = <&ipic>; |
30 | /* Filled in by U-Boot */ | 33 | /* Filled in by U-Boot */ |
31 | clock-frequency = <0>; | 34 | clock-frequency = <0>; |
35 | voltage-ranges = <3300 3300>; | ||
32 | }; | 36 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt index 094ae010f2fb..789fb07a426d 100644 --- a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt | |||
@@ -4,12 +4,13 @@ This file documents differences between the core properties in mmc.txt | |||
4 | and the properties present in the bcm281xx SDHCI | 4 | and the properties present in the bcm281xx SDHCI |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : Should be "bcm,kona-sdhci" | 7 | - compatible : Should be "brcm,kona-sdhci" |
8 | - DEPRECATED: compatible : Should be "bcm,kona-sdhci" | ||
8 | 9 | ||
9 | Example: | 10 | Example: |
10 | 11 | ||
11 | sdio2: sdio@0x3f1a0000 { | 12 | sdio2: sdio@0x3f1a0000 { |
12 | compatible = "bcm,kona-sdhci"; | 13 | compatible = "brcm,kona-sdhci"; |
13 | reg = <0x3f1a0000 0x10000>; | 14 | reg = <0x3f1a0000 0x10000>; |
14 | interrupts = <0x0 74 0x4>; | 15 | interrupts = <0x0 74 0x4>; |
15 | }; | 16 | }; |
diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt index d555421ea49f..c4728839d0c1 100644 --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt | |||
@@ -15,6 +15,7 @@ Required properties: | |||
15 | optional gpio and may be set to 0 if not present. | 15 | optional gpio and may be set to 0 if not present. |
16 | 16 | ||
17 | Optional properties: | 17 | Optional properties: |
18 | - atmel,nand-has-dma : boolean to support dma transfer for nand read/write. | ||
18 | - nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. | 19 | - nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. |
19 | Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", | 20 | Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", |
20 | "soft_bch". | 21 | "soft_bch". |
@@ -29,6 +30,14 @@ Optional properties: | |||
29 | sector size 1024. | 30 | sector size 1024. |
30 | - nand-bus-width : 8 or 16 bus width if not present 8 | 31 | - nand-bus-width : 8 or 16 bus width if not present 8 |
31 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false | 32 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false |
33 | - Nand Flash Controller(NFC) is a slave driver under Atmel nand flash | ||
34 | - Required properties: | ||
35 | - compatible : "atmel,sama5d3-nfc". | ||
36 | - reg : should specify the address and size used for NFC command registers, | ||
37 | NFC registers and NFC Sram. NFC Sram address and size can be absent | ||
38 | if don't want to use it. | ||
39 | - Optional properties: | ||
40 | - atmel,write-by-sram: boolean to enable NFC write by sram. | ||
32 | 41 | ||
33 | Examples: | 42 | Examples: |
34 | nand0: nand@40000000,0 { | 43 | nand0: nand@40000000,0 { |
@@ -77,3 +86,22 @@ nand0: nand@40000000 { | |||
77 | ... | 86 | ... |
78 | }; | 87 | }; |
79 | }; | 88 | }; |
89 | |||
90 | /* for NFC supported chips */ | ||
91 | nand0: nand@40000000 { | ||
92 | compatible = "atmel,at91rm9200-nand"; | ||
93 | #address-cells = <1>; | ||
94 | #size-cells = <1>; | ||
95 | ranges; | ||
96 | ... | ||
97 | nfc@70000000 { | ||
98 | compatible = "atmel,sama5d3-nfc"; | ||
99 | #address-cells = <1>; | ||
100 | #size-cells = <1>; | ||
101 | reg = < | ||
102 | 0x70000000 0x10000000 /* NFC Command Registers */ | ||
103 | 0xffffc000 0x00000070 /* NFC HSMC regs */ | ||
104 | 0x00200000 0x00100000 /* NFC SRAM banks */ | ||
105 | >; | ||
106 | }; | ||
107 | }; | ||
diff --git a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt index 2240ac09f6ba..ec42935f3908 100644 --- a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt +++ b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | * FSMC NAND | 1 | ST Microelectronics Flexible Static Memory Controller (FSMC) |
2 | NAND Interface | ||
2 | 3 | ||
3 | Required properties: | 4 | Required properties: |
4 | - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand" | 5 | - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand" |
@@ -9,6 +10,26 @@ Optional properties: | |||
9 | - bank-width : Width (in bytes) of the device. If not present, the width | 10 | - bank-width : Width (in bytes) of the device. If not present, the width |
10 | defaults to 1 byte | 11 | defaults to 1 byte |
11 | - nand-skip-bbtscan: Indicates the the BBT scanning should be skipped | 12 | - nand-skip-bbtscan: Indicates the the BBT scanning should be skipped |
13 | - timings: array of 6 bytes for NAND timings. The meanings of these bytes | ||
14 | are: | ||
15 | byte 0 TCLR : CLE to RE delay in number of AHB clock cycles, only 4 bits | ||
16 | are valid. Zero means one clockcycle, 15 means 16 clock | ||
17 | cycles. | ||
18 | byte 1 TAR : ALE to RE delay, 4 bits are valid. Same format as TCLR. | ||
19 | byte 2 THIZ : number of HCLK clock cycles during which the data bus is | ||
20 | kept in Hi-Z (tristate) after the start of a write access. | ||
21 | Only valid for write transactions. Zero means zero cycles, | ||
22 | 255 means 255 cycles. | ||
23 | byte 3 THOLD : number of HCLK clock cycles to hold the address (and data | ||
24 | when writing) after the command deassertation. Zero means | ||
25 | one cycle, 255 means 256 cycles. | ||
26 | byte 4 TWAIT : number of HCLK clock cycles to assert the command to the | ||
27 | NAND flash in response to SMWAITn. Zero means 1 cycle, | ||
28 | 255 means 256 cycles. | ||
29 | byte 5 TSET : number of HCLK clock cycles to assert the address before the | ||
30 | command is asserted. Zero means one cycle, 255 means 256 | ||
31 | cycles. | ||
32 | - bank: default NAND bank to use (0-3 are valid, 0 is the default). | ||
12 | 33 | ||
13 | Example: | 34 | Example: |
14 | 35 | ||
@@ -24,6 +45,8 @@ Example: | |||
24 | 45 | ||
25 | bank-width = <1>; | 46 | bank-width = <1>; |
26 | nand-skip-bbtscan; | 47 | nand-skip-bbtscan; |
48 | timings = /bits/ 8 <0 0 0 2 3 0>; | ||
49 | bank = <1>; | ||
27 | 50 | ||
28 | partition@0 { | 51 | partition@0 { |
29 | ... | 52 | ... |
diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt index 9315ac96b49b..8e5557da1955 100644 --- a/Documentation/devicetree/bindings/mtd/partition.txt +++ b/Documentation/devicetree/bindings/mtd/partition.txt | |||
@@ -4,6 +4,7 @@ Partitions can be represented by sub-nodes of an mtd device. This can be used | |||
4 | on platforms which have strong conventions about which portions of a flash are | 4 | on platforms which have strong conventions about which portions of a flash are |
5 | used for what purposes, but which don't use an on-flash partition table such | 5 | used for what purposes, but which don't use an on-flash partition table such |
6 | as RedBoot. | 6 | as RedBoot. |
7 | NOTE: if the sub-node has a compatible string, then it is not a partition. | ||
7 | 8 | ||
8 | #address-cells & #size-cells must both be present in the mtd device. There are | 9 | #address-cells & #size-cells must both be present in the mtd device. There are |
9 | two valid values for both: | 10 | two valid values for both: |
diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt index 72cf0c5daff4..14e52a0d86ec 100644 --- a/Documentation/devicetree/bindings/net/can/atmel-can.txt +++ b/Documentation/devicetree/bindings/net/can/atmel-can.txt | |||
@@ -8,7 +8,7 @@ Required properties: | |||
8 | Example: | 8 | Example: |
9 | 9 | ||
10 | can0: can@f000c000 { | 10 | can0: can@f000c000 { |
11 | compatbile = "atmel,at91sam9x5-can"; | 11 | compatible = "atmel,at91sam9x5-can"; |
12 | reg = <0xf000c000 0x300>; | 12 | reg = <0xf000c000 0x300>; |
13 | interrupts = <40 4 5> | 13 | interrupts = <40 4 5> |
14 | }; | 14 | }; |
diff --git a/Documentation/devicetree/bindings/net/can/sja1000.txt b/Documentation/devicetree/bindings/net/can/sja1000.txt index c2dbcec0ee31..f2105a47ec87 100644 --- a/Documentation/devicetree/bindings/net/can/sja1000.txt +++ b/Documentation/devicetree/bindings/net/can/sja1000.txt | |||
@@ -37,7 +37,7 @@ Optional properties: | |||
37 | If not specified or if the specified value is 0, the CLKOUT pin | 37 | If not specified or if the specified value is 0, the CLKOUT pin |
38 | will be disabled. | 38 | will be disabled. |
39 | 39 | ||
40 | - nxp,no-comparator-bypass : Allows to disable the CAN input comperator. | 40 | - nxp,no-comparator-bypass : Allows to disable the CAN input comparator. |
41 | 41 | ||
42 | For further information, please have a look to the SJA1000 data sheet. | 42 | For further information, please have a look to the SJA1000 data sheet. |
43 | 43 | ||
diff --git a/Documentation/devicetree/bindings/net/micrel-ksz9021.txt b/Documentation/devicetree/bindings/net/micrel-ksz9021.txt new file mode 100644 index 000000000000..997a63f1aea1 --- /dev/null +++ b/Documentation/devicetree/bindings/net/micrel-ksz9021.txt | |||
@@ -0,0 +1,49 @@ | |||
1 | Micrel KSZ9021 Gigabit Ethernet PHY | ||
2 | |||
3 | Some boards require special tuning values, particularly when it comes to | ||
4 | clock delays. You can specify clock delay values by adding | ||
5 | micrel-specific properties to an Ethernet OF device node. | ||
6 | |||
7 | All skew control options are specified in picoseconds. The minimum | ||
8 | value is 0, and the maximum value is 3000. | ||
9 | |||
10 | Optional properties: | ||
11 | - rxc-skew-ps : Skew control of RXC pad | ||
12 | - rxdv-skew-ps : Skew control of RX CTL pad | ||
13 | - txc-skew-ps : Skew control of TXC pad | ||
14 | - txen-skew-ps : Skew control of TX_CTL pad | ||
15 | - rxd0-skew-ps : Skew control of RX data 0 pad | ||
16 | - rxd1-skew-ps : Skew control of RX data 1 pad | ||
17 | - rxd2-skew-ps : Skew control of RX data 2 pad | ||
18 | - rxd3-skew-ps : Skew control of RX data 3 pad | ||
19 | - txd0-skew-ps : Skew control of TX data 0 pad | ||
20 | - txd1-skew-ps : Skew control of TX data 1 pad | ||
21 | - txd2-skew-ps : Skew control of TX data 2 pad | ||
22 | - txd3-skew-ps : Skew control of TX data 3 pad | ||
23 | |||
24 | Examples: | ||
25 | |||
26 | /* Attach to an Ethernet device with autodetected PHY */ | ||
27 | &enet { | ||
28 | rxc-skew-ps = <3000>; | ||
29 | rxdv-skew-ps = <0>; | ||
30 | txc-skew-ps = <3000>; | ||
31 | txen-skew-ps = <0>; | ||
32 | status = "okay"; | ||
33 | }; | ||
34 | |||
35 | /* Attach to an explicitly-specified PHY */ | ||
36 | mdio { | ||
37 | phy0: ethernet-phy@0 { | ||
38 | rxc-skew-ps = <3000>; | ||
39 | rxdv-skew-ps = <0>; | ||
40 | txc-skew-ps = <3000>; | ||
41 | txen-skew-ps = <0>; | ||
42 | reg = <0>; | ||
43 | }; | ||
44 | }; | ||
45 | ethernet@70000 { | ||
46 | status = "okay"; | ||
47 | phy = <&phy0>; | ||
48 | phy-mode = "rgmii-id"; | ||
49 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt b/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt new file mode 100644 index 000000000000..583418b2c127 --- /dev/null +++ b/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | MOXA ART Ethernet Controller | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Must be "moxa,moxart-mac" | ||
6 | - reg : Should contain register location and length | ||
7 | - interrupts : Should contain the mac interrupt number | ||
8 | |||
9 | Example: | ||
10 | |||
11 | mac0: mac@90900000 { | ||
12 | compatible = "moxa,moxart-mac"; | ||
13 | reg = <0x90900000 0x100>; | ||
14 | interrupts = <25 0>; | ||
15 | }; | ||
16 | |||
17 | mac1: mac@92000000 { | ||
18 | compatible = "moxa,moxart-mac"; | ||
19 | reg = <0x92000000 0x100>; | ||
20 | interrupts = <27 0>; | ||
21 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt index 261c563b5f06..eba0e5e59ebe 100644 --- a/Documentation/devicetree/bindings/net/stmmac.txt +++ b/Documentation/devicetree/bindings/net/stmmac.txt | |||
@@ -22,6 +22,11 @@ Required properties: | |||
22 | - snps,pbl Programmable Burst Length | 22 | - snps,pbl Programmable Burst Length |
23 | - snps,fixed-burst Program the DMA to use the fixed burst mode | 23 | - snps,fixed-burst Program the DMA to use the fixed burst mode |
24 | - snps,mixed-burst Program the DMA to use the mixed burst mode | 24 | - snps,mixed-burst Program the DMA to use the mixed burst mode |
25 | - snps,force_thresh_dma_mode Force DMA to use the threshold mode for | ||
26 | both tx and rx | ||
27 | - snps,force_sf_dma_mode Force DMA to use the Store and Forward | ||
28 | mode for both tx and rx. This flag is | ||
29 | ignored if force_thresh_dma_mode is set. | ||
25 | 30 | ||
26 | Optional properties: | 31 | Optional properties: |
27 | - mac-address: 6 bytes, mac address | 32 | - mac-address: 6 bytes, mac address |
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt index e2371f5cdebe..eabcb4b5db6e 100644 --- a/Documentation/devicetree/bindings/pci/designware-pcie.txt +++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt | |||
@@ -18,6 +18,7 @@ Required properties: | |||
18 | - interrupt-map-mask and interrupt-map: standard PCI properties | 18 | - interrupt-map-mask and interrupt-map: standard PCI properties |
19 | to define the mapping of the PCIe interface to interrupt | 19 | to define the mapping of the PCIe interface to interrupt |
20 | numbers. | 20 | numbers. |
21 | - num-lanes: number of lanes to use | ||
21 | - reset-gpio: gpio pin number of power good signal | 22 | - reset-gpio: gpio pin number of power good signal |
22 | 23 | ||
23 | Example: | 24 | Example: |
@@ -41,6 +42,7 @@ SoC specific DT Entry: | |||
41 | #interrupt-cells = <1>; | 42 | #interrupt-cells = <1>; |
42 | interrupt-map-mask = <0 0 0 0>; | 43 | interrupt-map-mask = <0 0 0 0>; |
43 | interrupt-map = <0x0 0 &gic 53>; | 44 | interrupt-map = <0x0 0 &gic 53>; |
45 | num-lanes = <4>; | ||
44 | }; | 46 | }; |
45 | 47 | ||
46 | pcie@2a0000 { | 48 | pcie@2a0000 { |
@@ -60,6 +62,7 @@ SoC specific DT Entry: | |||
60 | #interrupt-cells = <1>; | 62 | #interrupt-cells = <1>; |
61 | interrupt-map-mask = <0 0 0 0>; | 63 | interrupt-map-mask = <0 0 0 0>; |
62 | interrupt-map = <0x0 0 &gic 56>; | 64 | interrupt-map = <0x0 0 &gic 56>; |
65 | num-lanes = <4>; | ||
63 | }; | 66 | }; |
64 | 67 | ||
65 | Board specific DT Entry: | 68 | Board specific DT Entry: |
diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt index f8d405897a94..9556e2fedf6d 100644 --- a/Documentation/devicetree/bindings/pci/mvebu-pci.txt +++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt | |||
@@ -1,6 +1,7 @@ | |||
1 | * Marvell EBU PCIe interfaces | 1 | * Marvell EBU PCIe interfaces |
2 | 2 | ||
3 | Mandatory properties: | 3 | Mandatory properties: |
4 | |||
4 | - compatible: one of the following values: | 5 | - compatible: one of the following values: |
5 | marvell,armada-370-pcie | 6 | marvell,armada-370-pcie |
6 | marvell,armada-xp-pcie | 7 | marvell,armada-xp-pcie |
@@ -10,11 +11,49 @@ Mandatory properties: | |||
10 | - #interrupt-cells, set to <1> | 11 | - #interrupt-cells, set to <1> |
11 | - bus-range: PCI bus numbers covered | 12 | - bus-range: PCI bus numbers covered |
12 | - device_type, set to "pci" | 13 | - device_type, set to "pci" |
13 | - ranges: ranges for the PCI memory and I/O regions, as well as the | 14 | - ranges: ranges describing the MMIO registers to control the PCIe |
14 | MMIO registers to control the PCIe interfaces. | 15 | interfaces, and ranges describing the MBus windows needed to access |
16 | the memory and I/O regions of each PCIe interface. | ||
17 | |||
18 | The ranges describing the MMIO registers have the following layout: | ||
19 | |||
20 | 0x82000000 0 r MBUS_ID(0xf0, 0x01) r 0 s | ||
21 | |||
22 | where: | ||
23 | |||
24 | * r is a 32-bits value that gives the offset of the MMIO | ||
25 | registers of this PCIe interface, from the base of the internal | ||
26 | registers. | ||
27 | |||
28 | * s is a 32-bits value that give the size of this MMIO | ||
29 | registers area. This range entry translates the '0x82000000 0 r' PCI | ||
30 | address into the 'MBUS_ID(0xf0, 0x01) r' CPU address, which is part | ||
31 | of the internal register window (as identified by MBUS_ID(0xf0, | ||
32 | 0x01)). | ||
33 | |||
34 | The ranges describing the MBus windows have the following layout: | ||
35 | |||
36 | 0x8t000000 s 0 MBUS_ID(w, a) 0 1 0 | ||
37 | |||
38 | where: | ||
39 | |||
40 | * t is the type of the MBus window (as defined by the standard PCI DT | ||
41 | bindings), 1 for I/O and 2 for memory. | ||
15 | 42 | ||
16 | In addition, the Device Tree node must have sub-nodes describing each | 43 | * s is the PCI slot that corresponds to this PCIe interface |
44 | |||
45 | * w is the 'target ID' value for the MBus window | ||
46 | |||
47 | * a the 'attribute' value for the MBus window. | ||
48 | |||
49 | Since the location and size of the different MBus windows is not fixed in | ||
50 | hardware, and only determined in runtime, those ranges cover the full first | ||
51 | 4 GB of the physical address space, and do not translate into a valid CPU | ||
52 | address. | ||
53 | |||
54 | In addition, the device tree node must have sub-nodes describing each | ||
17 | PCIe interface, having the following mandatory properties: | 55 | PCIe interface, having the following mandatory properties: |
56 | |||
18 | - reg: used only for interrupt mapping, so only the first four bytes | 57 | - 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. | 58 | are used to refer to the correct bus number and device number. |
20 | - assigned-addresses: reference to the MMIO registers used to control | 59 | - assigned-addresses: reference to the MMIO registers used to control |
@@ -26,7 +65,8 @@ PCIe interface, having the following mandatory properties: | |||
26 | - #address-cells, set to <3> | 65 | - #address-cells, set to <3> |
27 | - #size-cells, set to <2> | 66 | - #size-cells, set to <2> |
28 | - #interrupt-cells, set to <1> | 67 | - #interrupt-cells, set to <1> |
29 | - ranges, empty property. | 68 | - ranges, translating the MBus windows ranges of the parent node into |
69 | standard PCI addresses. | ||
30 | - interrupt-map-mask and interrupt-map, standard PCI properties to | 70 | - interrupt-map-mask and interrupt-map, standard PCI properties to |
31 | define the mapping of the PCIe interface to interrupt numbers. | 71 | define the mapping of the PCIe interface to interrupt numbers. |
32 | 72 | ||
@@ -47,27 +87,50 @@ pcie-controller { | |||
47 | 87 | ||
48 | bus-range = <0x00 0xff>; | 88 | bus-range = <0x00 0xff>; |
49 | 89 | ||
50 | ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ | 90 | ranges = |
51 | 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */ | 91 | <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ |
52 | 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */ | 92 | 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */ |
53 | 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */ | 93 | 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */ |
54 | 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */ | 94 | 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */ |
55 | 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */ | 95 | 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */ |
56 | 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */ | 96 | 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */ |
57 | 0x82000000 0 0xd0084000 0xd0084000 0 0x00002000 /* Port 1.1 registers */ | 97 | 0x82000000 0 0x82000 MBUS_ID(0xf0, 0x01) 0x82000 0 0x00002000 /* Port 3.0 registers */ |
58 | 0x82000000 0 0xd0088000 0xd0088000 0 0x00002000 /* Port 1.2 registers */ | 98 | 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */ |
59 | 0x82000000 0 0xd008c000 0xd008c000 0 0x00002000 /* Port 1.3 registers */ | 99 | 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */ |
60 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | 100 | 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */ |
61 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | 101 | 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ |
102 | 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */ | ||
103 | 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */ | ||
104 | 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */ | ||
105 | 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */ | ||
106 | 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */ | ||
107 | 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */ | ||
108 | 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */ | ||
109 | |||
110 | 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */ | ||
111 | 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */ | ||
112 | 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */ | ||
113 | 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */ | ||
114 | 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */ | ||
115 | 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */ | ||
116 | 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */ | ||
117 | 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */ | ||
118 | |||
119 | 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */ | ||
120 | 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */ | ||
121 | |||
122 | 0x82000000 0xa 0 MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */ | ||
123 | 0x81000000 0xa 0 MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO */>; | ||
62 | 124 | ||
63 | pcie@1,0 { | 125 | pcie@1,0 { |
64 | device_type = "pci"; | 126 | device_type = "pci"; |
65 | assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; | 127 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; |
66 | reg = <0x0800 0 0 0 0>; | 128 | reg = <0x0800 0 0 0 0>; |
67 | #address-cells = <3>; | 129 | #address-cells = <3>; |
68 | #size-cells = <2>; | 130 | #size-cells = <2>; |
69 | #interrupt-cells = <1>; | 131 | #interrupt-cells = <1>; |
70 | ranges; | 132 | ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 |
133 | 0x81000000 0 0 0x81000000 0x1 0 1 0>; | ||
71 | interrupt-map-mask = <0 0 0 0>; | 134 | interrupt-map-mask = <0 0 0 0>; |
72 | interrupt-map = <0 0 0 0 &mpic 58>; | 135 | interrupt-map = <0 0 0 0 &mpic 58>; |
73 | marvell,pcie-port = <0>; | 136 | marvell,pcie-port = <0>; |
@@ -78,12 +141,13 @@ pcie-controller { | |||
78 | 141 | ||
79 | pcie@2,0 { | 142 | pcie@2,0 { |
80 | device_type = "pci"; | 143 | device_type = "pci"; |
81 | assigned-addresses = <0x82001000 0 0xd0044000 0 0x2000>; | 144 | assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; |
82 | reg = <0x1000 0 0 0 0>; | 145 | reg = <0x1000 0 0 0 0>; |
83 | #address-cells = <3>; | 146 | #address-cells = <3>; |
84 | #size-cells = <2>; | 147 | #size-cells = <2>; |
85 | #interrupt-cells = <1>; | 148 | #interrupt-cells = <1>; |
86 | ranges; | 149 | ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 |
150 | 0x81000000 0 0 0x81000000 0x2 0 1 0>; | ||
87 | interrupt-map-mask = <0 0 0 0>; | 151 | interrupt-map-mask = <0 0 0 0>; |
88 | interrupt-map = <0 0 0 0 &mpic 59>; | 152 | interrupt-map = <0 0 0 0 &mpic 59>; |
89 | marvell,pcie-port = <0>; | 153 | marvell,pcie-port = <0>; |
@@ -94,12 +158,13 @@ pcie-controller { | |||
94 | 158 | ||
95 | pcie@3,0 { | 159 | pcie@3,0 { |
96 | device_type = "pci"; | 160 | device_type = "pci"; |
97 | assigned-addresses = <0x82001800 0 0xd0048000 0 0x2000>; | 161 | assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; |
98 | reg = <0x1800 0 0 0 0>; | 162 | reg = <0x1800 0 0 0 0>; |
99 | #address-cells = <3>; | 163 | #address-cells = <3>; |
100 | #size-cells = <2>; | 164 | #size-cells = <2>; |
101 | #interrupt-cells = <1>; | 165 | #interrupt-cells = <1>; |
102 | ranges; | 166 | ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 |
167 | 0x81000000 0 0 0x81000000 0x3 0 1 0>; | ||
103 | interrupt-map-mask = <0 0 0 0>; | 168 | interrupt-map-mask = <0 0 0 0>; |
104 | interrupt-map = <0 0 0 0 &mpic 60>; | 169 | interrupt-map = <0 0 0 0 &mpic 60>; |
105 | marvell,pcie-port = <0>; | 170 | marvell,pcie-port = <0>; |
@@ -110,12 +175,13 @@ pcie-controller { | |||
110 | 175 | ||
111 | pcie@4,0 { | 176 | pcie@4,0 { |
112 | device_type = "pci"; | 177 | device_type = "pci"; |
113 | assigned-addresses = <0x82002000 0 0xd004c000 0 0x2000>; | 178 | assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; |
114 | reg = <0x2000 0 0 0 0>; | 179 | reg = <0x2000 0 0 0 0>; |
115 | #address-cells = <3>; | 180 | #address-cells = <3>; |
116 | #size-cells = <2>; | 181 | #size-cells = <2>; |
117 | #interrupt-cells = <1>; | 182 | #interrupt-cells = <1>; |
118 | ranges; | 183 | ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0 |
184 | 0x81000000 0 0 0x81000000 0x4 0 1 0>; | ||
119 | interrupt-map-mask = <0 0 0 0>; | 185 | interrupt-map-mask = <0 0 0 0>; |
120 | interrupt-map = <0 0 0 0 &mpic 61>; | 186 | interrupt-map = <0 0 0 0 &mpic 61>; |
121 | marvell,pcie-port = <0>; | 187 | marvell,pcie-port = <0>; |
@@ -126,12 +192,13 @@ pcie-controller { | |||
126 | 192 | ||
127 | pcie@5,0 { | 193 | pcie@5,0 { |
128 | device_type = "pci"; | 194 | device_type = "pci"; |
129 | assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>; | 195 | assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; |
130 | reg = <0x2800 0 0 0 0>; | 196 | reg = <0x2800 0 0 0 0>; |
131 | #address-cells = <3>; | 197 | #address-cells = <3>; |
132 | #size-cells = <2>; | 198 | #size-cells = <2>; |
133 | #interrupt-cells = <1>; | 199 | #interrupt-cells = <1>; |
134 | ranges; | 200 | ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0 |
201 | 0x81000000 0 0 0x81000000 0x5 0 1 0>; | ||
135 | interrupt-map-mask = <0 0 0 0>; | 202 | interrupt-map-mask = <0 0 0 0>; |
136 | interrupt-map = <0 0 0 0 &mpic 62>; | 203 | interrupt-map = <0 0 0 0 &mpic 62>; |
137 | marvell,pcie-port = <1>; | 204 | marvell,pcie-port = <1>; |
@@ -142,12 +209,13 @@ pcie-controller { | |||
142 | 209 | ||
143 | pcie@6,0 { | 210 | pcie@6,0 { |
144 | device_type = "pci"; | 211 | device_type = "pci"; |
145 | assigned-addresses = <0x82003000 0 0xd0084000 0 0x2000>; | 212 | assigned-addresses = <0x82003000 0 0x84000 0 0x2000>; |
146 | reg = <0x3000 0 0 0 0>; | 213 | reg = <0x3000 0 0 0 0>; |
147 | #address-cells = <3>; | 214 | #address-cells = <3>; |
148 | #size-cells = <2>; | 215 | #size-cells = <2>; |
149 | #interrupt-cells = <1>; | 216 | #interrupt-cells = <1>; |
150 | ranges; | 217 | ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0 |
218 | 0x81000000 0 0 0x81000000 0x6 0 1 0>; | ||
151 | interrupt-map-mask = <0 0 0 0>; | 219 | interrupt-map-mask = <0 0 0 0>; |
152 | interrupt-map = <0 0 0 0 &mpic 63>; | 220 | interrupt-map = <0 0 0 0 &mpic 63>; |
153 | marvell,pcie-port = <1>; | 221 | marvell,pcie-port = <1>; |
@@ -158,12 +226,13 @@ pcie-controller { | |||
158 | 226 | ||
159 | pcie@7,0 { | 227 | pcie@7,0 { |
160 | device_type = "pci"; | 228 | device_type = "pci"; |
161 | assigned-addresses = <0x82003800 0 0xd0088000 0 0x2000>; | 229 | assigned-addresses = <0x82003800 0 0x88000 0 0x2000>; |
162 | reg = <0x3800 0 0 0 0>; | 230 | reg = <0x3800 0 0 0 0>; |
163 | #address-cells = <3>; | 231 | #address-cells = <3>; |
164 | #size-cells = <2>; | 232 | #size-cells = <2>; |
165 | #interrupt-cells = <1>; | 233 | #interrupt-cells = <1>; |
166 | ranges; | 234 | ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0 |
235 | 0x81000000 0 0 0x81000000 0x7 0 1 0>; | ||
167 | interrupt-map-mask = <0 0 0 0>; | 236 | interrupt-map-mask = <0 0 0 0>; |
168 | interrupt-map = <0 0 0 0 &mpic 64>; | 237 | interrupt-map = <0 0 0 0 &mpic 64>; |
169 | marvell,pcie-port = <1>; | 238 | marvell,pcie-port = <1>; |
@@ -174,12 +243,13 @@ pcie-controller { | |||
174 | 243 | ||
175 | pcie@8,0 { | 244 | pcie@8,0 { |
176 | device_type = "pci"; | 245 | device_type = "pci"; |
177 | assigned-addresses = <0x82004000 0 0xd008c000 0 0x2000>; | 246 | assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>; |
178 | reg = <0x4000 0 0 0 0>; | 247 | reg = <0x4000 0 0 0 0>; |
179 | #address-cells = <3>; | 248 | #address-cells = <3>; |
180 | #size-cells = <2>; | 249 | #size-cells = <2>; |
181 | #interrupt-cells = <1>; | 250 | #interrupt-cells = <1>; |
182 | ranges; | 251 | ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0 |
252 | 0x81000000 0 0 0x81000000 0x8 0 1 0>; | ||
183 | interrupt-map-mask = <0 0 0 0>; | 253 | interrupt-map-mask = <0 0 0 0>; |
184 | interrupt-map = <0 0 0 0 &mpic 65>; | 254 | interrupt-map = <0 0 0 0 &mpic 65>; |
185 | marvell,pcie-port = <1>; | 255 | marvell,pcie-port = <1>; |
@@ -187,14 +257,16 @@ pcie-controller { | |||
187 | clocks = <&gateclk 12>; | 257 | clocks = <&gateclk 12>; |
188 | status = "disabled"; | 258 | status = "disabled"; |
189 | }; | 259 | }; |
260 | |||
190 | pcie@9,0 { | 261 | pcie@9,0 { |
191 | device_type = "pci"; | 262 | device_type = "pci"; |
192 | assigned-addresses = <0x82004800 0 0xd0042000 0 0x2000>; | 263 | assigned-addresses = <0x82004800 0 0x42000 0 0x2000>; |
193 | reg = <0x4800 0 0 0 0>; | 264 | reg = <0x4800 0 0 0 0>; |
194 | #address-cells = <3>; | 265 | #address-cells = <3>; |
195 | #size-cells = <2>; | 266 | #size-cells = <2>; |
196 | #interrupt-cells = <1>; | 267 | #interrupt-cells = <1>; |
197 | ranges; | 268 | ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0 |
269 | 0x81000000 0 0 0x81000000 0x9 0 1 0>; | ||
198 | interrupt-map-mask = <0 0 0 0>; | 270 | interrupt-map-mask = <0 0 0 0>; |
199 | interrupt-map = <0 0 0 0 &mpic 99>; | 271 | interrupt-map = <0 0 0 0 &mpic 99>; |
200 | marvell,pcie-port = <2>; | 272 | marvell,pcie-port = <2>; |
@@ -205,12 +277,13 @@ pcie-controller { | |||
205 | 277 | ||
206 | pcie@10,0 { | 278 | pcie@10,0 { |
207 | device_type = "pci"; | 279 | device_type = "pci"; |
208 | assigned-addresses = <0x82005000 0 0xd0082000 0 0x2000>; | 280 | assigned-addresses = <0x82005000 0 0x82000 0 0x2000>; |
209 | reg = <0x5000 0 0 0 0>; | 281 | reg = <0x5000 0 0 0 0>; |
210 | #address-cells = <3>; | 282 | #address-cells = <3>; |
211 | #size-cells = <2>; | 283 | #size-cells = <2>; |
212 | #interrupt-cells = <1>; | 284 | #interrupt-cells = <1>; |
213 | ranges; | 285 | ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0 |
286 | 0x81000000 0 0 0x81000000 0xa 0 1 0>; | ||
214 | interrupt-map-mask = <0 0 0 0>; | 287 | interrupt-map-mask = <0 0 0 0>; |
215 | interrupt-map = <0 0 0 0 &mpic 103>; | 288 | interrupt-map = <0 0 0 0 &mpic 103>; |
216 | marvell,pcie-port = <3>; | 289 | marvell,pcie-port = <3>; |
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt new file mode 100644 index 000000000000..6b7510775c50 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt | |||
@@ -0,0 +1,163 @@ | |||
1 | NVIDIA Tegra PCIe controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "nvidia,tegra20-pcie" or "nvidia,tegra30-pcie" | ||
5 | - device_type: Must be "pci" | ||
6 | - reg: A list of physical base address and length for each set of controller | ||
7 | registers. Must contain an entry for each entry in the reg-names property. | ||
8 | - reg-names: Must include the following entries: | ||
9 | "pads": PADS registers | ||
10 | "afi": AFI registers | ||
11 | "cs": configuration space region | ||
12 | - interrupts: A list of interrupt outputs of the controller. Must contain an | ||
13 | entry for each entry in the interrupt-names property. | ||
14 | - interrupt-names: Must include the following entries: | ||
15 | "intr": The Tegra interrupt that is asserted for controller interrupts | ||
16 | "msi": The Tegra interrupt that is asserted when an MSI is received | ||
17 | - pex-clk-supply: Supply voltage for internal reference clock | ||
18 | - vdd-supply: Power supply for controller (1.05V) | ||
19 | - avdd-supply: Power supply for controller (1.05V) (not required for Tegra20) | ||
20 | - bus-range: Range of bus numbers associated with this controller | ||
21 | - #address-cells: Address representation for root ports (must be 3) | ||
22 | - cell 0 specifies the bus and device numbers of the root port: | ||
23 | [23:16]: bus number | ||
24 | [15:11]: device number | ||
25 | - cell 1 denotes the upper 32 address bits and should be 0 | ||
26 | - cell 2 contains the lower 32 address bits and is used to translate to the | ||
27 | CPU address space | ||
28 | - #size-cells: Size representation for root ports (must be 2) | ||
29 | - ranges: Describes the translation of addresses for root ports and standard | ||
30 | PCI regions. The entries must be 6 cells each, where the first three cells | ||
31 | correspond to the address as described for the #address-cells property | ||
32 | above, the fourth cell is the physical CPU address to translate to and the | ||
33 | fifth and six cells are as described for the #size-cells property above. | ||
34 | - The first two entries are expected to translate the addresses for the root | ||
35 | port registers, which are referenced by the assigned-addresses property of | ||
36 | the root port nodes (see below). | ||
37 | - The remaining entries setup the mapping for the standard I/O, memory and | ||
38 | prefetchable PCI regions. The first cell determines the type of region | ||
39 | that is setup: | ||
40 | - 0x81000000: I/O memory region | ||
41 | - 0x82000000: non-prefetchable memory region | ||
42 | - 0xc2000000: prefetchable memory region | ||
43 | Please refer to the standard PCI bus binding document for a more detailed | ||
44 | explanation. | ||
45 | - clocks: List of clock inputs of the controller. Must contain an entry for | ||
46 | each entry in the clock-names property. | ||
47 | - clock-names: Must include the following entries: | ||
48 | "pex": The Tegra clock of that name | ||
49 | "afi": The Tegra clock of that name | ||
50 | "pcie_xclk": The Tegra clock of that name | ||
51 | "pll_e": The Tegra clock of that name | ||
52 | "cml": The Tegra clock of that name (not required for Tegra20) | ||
53 | |||
54 | Root ports are defined as subnodes of the PCIe controller node. | ||
55 | |||
56 | Required properties: | ||
57 | - device_type: Must be "pci" | ||
58 | - assigned-addresses: Address and size of the port configuration registers | ||
59 | - reg: PCI bus address of the root port | ||
60 | - #address-cells: Must be 3 | ||
61 | - #size-cells: Must be 2 | ||
62 | - ranges: Sub-ranges distributed from the PCIe controller node. An empty | ||
63 | property is sufficient. | ||
64 | - nvidia,num-lanes: Number of lanes to use for this port. Valid combinations | ||
65 | are: | ||
66 | - Root port 0 uses 4 lanes, root port 1 is unused. | ||
67 | - Both root ports use 2 lanes. | ||
68 | |||
69 | Example: | ||
70 | |||
71 | SoC DTSI: | ||
72 | |||
73 | pcie-controller { | ||
74 | compatible = "nvidia,tegra20-pcie"; | ||
75 | device_type = "pci"; | ||
76 | reg = <0x80003000 0x00000800 /* PADS registers */ | ||
77 | 0x80003800 0x00000200 /* AFI registers */ | ||
78 | 0x90000000 0x10000000>; /* configuration space */ | ||
79 | reg-names = "pads", "afi", "cs"; | ||
80 | interrupts = <0 98 0x04 /* controller interrupt */ | ||
81 | 0 99 0x04>; /* MSI interrupt */ | ||
82 | interrupt-names = "intr", "msi"; | ||
83 | |||
84 | bus-range = <0x00 0xff>; | ||
85 | #address-cells = <3>; | ||
86 | #size-cells = <2>; | ||
87 | |||
88 | ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */ | ||
89 | 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */ | ||
90 | 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */ | ||
91 | 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ | ||
92 | 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ | ||
93 | |||
94 | clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>, | ||
95 | <&tegra_car 118>; | ||
96 | clock-names = "pex", "afi", "pcie_xclk", "pll_e"; | ||
97 | status = "disabled"; | ||
98 | |||
99 | pci@1,0 { | ||
100 | device_type = "pci"; | ||
101 | assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>; | ||
102 | reg = <0x000800 0 0 0 0>; | ||
103 | status = "disabled"; | ||
104 | |||
105 | #address-cells = <3>; | ||
106 | #size-cells = <2>; | ||
107 | |||
108 | ranges; | ||
109 | |||
110 | nvidia,num-lanes = <2>; | ||
111 | }; | ||
112 | |||
113 | pci@2,0 { | ||
114 | device_type = "pci"; | ||
115 | assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>; | ||
116 | reg = <0x001000 0 0 0 0>; | ||
117 | status = "disabled"; | ||
118 | |||
119 | #address-cells = <3>; | ||
120 | #size-cells = <2>; | ||
121 | |||
122 | ranges; | ||
123 | |||
124 | nvidia,num-lanes = <2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | |||
129 | Board DTS: | ||
130 | |||
131 | pcie-controller { | ||
132 | status = "okay"; | ||
133 | |||
134 | vdd-supply = <&pci_vdd_reg>; | ||
135 | pex-clk-supply = <&pci_clk_reg>; | ||
136 | |||
137 | /* root port 00:01.0 */ | ||
138 | pci@1,0 { | ||
139 | status = "okay"; | ||
140 | |||
141 | /* bridge 01:00.0 (optional) */ | ||
142 | pci@0,0 { | ||
143 | reg = <0x010000 0 0 0 0>; | ||
144 | |||
145 | #address-cells = <3>; | ||
146 | #size-cells = <2>; | ||
147 | |||
148 | device_type = "pci"; | ||
149 | |||
150 | /* endpoint 02:00.0 */ | ||
151 | pci@0,0 { | ||
152 | reg = <0x020000 0 0 0 0>; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | }; | ||
157 | |||
158 | Note that devices on the PCI bus are dynamically discovered using PCI's bus | ||
159 | enumeration and therefore don't need corresponding device nodes in DT. However | ||
160 | if a device on the PCI bus provides a non-probeable bus such as I2C or SPI, | ||
161 | device nodes need to be added in order to allow the bus' children to be | ||
162 | instantiated at the proper location in the operating system's device tree (as | ||
163 | illustrated by the optional nodes in the example above). | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt index 648d60eb9fd8..7ccae490ff6d 100644 --- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt | |||
@@ -37,7 +37,7 @@ Bank: 3 (A, B and C) | |||
37 | 0xffffffff 0x7fff3ccf /* pioB */ | 37 | 0xffffffff 0x7fff3ccf /* pioB */ |
38 | 0xffffffff 0x007fffff /* pioC */ | 38 | 0xffffffff 0x007fffff /* pioC */ |
39 | 39 | ||
40 | For each peripheral/bank we will descibe in a u32 if a pin can can be | 40 | For each peripheral/bank we will descibe in a u32 if a pin can be |
41 | configured in it by putting 1 to the pin bit (1 << pin) | 41 | configured in it by putting 1 to the pin bit (1 << pin) |
42 | 42 | ||
43 | Let's take the pioA on peripheral B | 43 | Let's take the pioA on peripheral B |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt index e204d009f16c..fb70856c5b51 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt | |||
@@ -80,6 +80,17 @@ Valid values for pin and group names are: | |||
80 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | 80 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, |
81 | gmh, owr, uda. | 81 | gmh, owr, uda. |
82 | 82 | ||
83 | Valid values for nvidia,functions are: | ||
84 | |||
85 | blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya, | ||
86 | displaya_alt, displayb, dtv, emc_dll, extperiph1, extperiph2, | ||
87 | extperiph3, gmi, gmi_alt, hda, hsi, i2c1, i2c2, i2c3, i2c4, i2cpwr, | ||
88 | i2s0, i2s1, i2s2, i2s3, i2s4, irda, kbc, nand, nand_alt, owr, pmi, | ||
89 | pwm0, pwm1, pwm2, pwm3, pwron, reset_out_n, rsvd1, rsvd2, rsvd3, | ||
90 | rsvd4, sdmmc1, sdmmc2, sdmmc3, sdmmc4, soc, spdif, spi1, spi2, spi3, | ||
91 | spi4, spi5, spi6, sysclk, trace, uarta, uartb, uartc, uartd, ulpi, | ||
92 | usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, vi, vi_alt1, vi_alt3 | ||
93 | |||
83 | Example: | 94 | Example: |
84 | 95 | ||
85 | pinmux: pinmux { | 96 | pinmux: pinmux { |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt index 683fde93c4fb..61e73cde9ae9 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt | |||
@@ -103,6 +103,17 @@ Valid values for pin and group names are: | |||
103 | drive_gma, drive_gmb, drive_gmc, drive_gmd, drive_gme, drive_owr, | 103 | drive_gma, drive_gmb, drive_gmc, drive_gmd, drive_gme, drive_owr, |
104 | drive_uda. | 104 | drive_uda. |
105 | 105 | ||
106 | Valid values for nvidia,functions are: | ||
107 | |||
108 | ahb_clk, apb_clk, audio_sync, crt, dap1, dap2, dap3, dap4, dap5, | ||
109 | displaya, displayb, emc_test0_dll, emc_test1_dll, gmi, gmi_int, | ||
110 | hdmi, i2cp, i2c1, i2c2, i2c3, ide, irda, kbc, mio, mipi_hs, nand, | ||
111 | osc, owr, pcie, plla_out, pllc_out1, pllm_out1, pllp_out2, pllp_out3, | ||
112 | pllp_out4, pwm, pwr_intr, pwr_on, rsvd1, rsvd2, rsvd3, rsvd4, rtck, | ||
113 | sdio1, sdio2, sdio3, sdio4, sflash, spdif, spi1, spi2, spi2_alt, | ||
114 | spi3, spi4, trace, twc, uarta, uartb, uartc, uartd, uarte, ulpi, | ||
115 | vi, vi_sensor_clk, xio | ||
116 | |||
106 | Example: | 117 | Example: |
107 | 118 | ||
108 | pinctrl@70000000 { | 119 | pinctrl@70000000 { |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt index 6f426ed7009e..0e6354c11e6d 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt | |||
@@ -91,6 +91,18 @@ Valid values for pin and group names are: | |||
91 | gmh, gpv, lcd1, lcd2, owr, sdio1, sdio2, sdio3, spi, uaa, uab, uart2, | 91 | gmh, gpv, lcd1, lcd2, owr, sdio1, sdio2, sdio3, spi, uaa, uab, uart2, |
92 | uart3, uda, vi1. | 92 | uart3, uda, vi1. |
93 | 93 | ||
94 | Valid values for nvidia,functions are: | ||
95 | |||
96 | blink, cec, clk_12m_out, clk_32k_in, core_pwr_req, cpu_pwr_req, crt, | ||
97 | dap, ddr, dev3, displaya, displayb, dtv, extperiph1, extperiph2, | ||
98 | extperiph3, gmi, gmi_alt, hda, hdcp, hdmi, hsi, i2c1, i2c2, i2c3, | ||
99 | i2c4, i2cpwr, i2s0, i2s1, i2s2, i2s3, i2s4, invalid, kbc, mio, nand, | ||
100 | nand_alt, owr, pcie, pwm0, pwm1, pwm2, pwm3, pwr_int_n, rsvd1, rsvd2, | ||
101 | rsvd3, rsvd4, rtck, sata, sdmmc1, sdmmc2, sdmmc3, sdmmc4, spdif, spi1, | ||
102 | spi2, spi2_alt, spi3, spi4, spi5, spi6, sysclk, test, trace, uarta, | ||
103 | uartb, uartc, uartd, uarte, ulpi, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, | ||
104 | vi, vi_alt1, vi_alt2, vi_alt3 | ||
105 | |||
94 | Example: | 106 | Example: |
95 | 107 | ||
96 | pinctrl@70000000 { | 108 | pinctrl@70000000 { |
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt index aeb3c995cc04..1958ca9f9e5c 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | |||
@@ -127,21 +127,20 @@ whether there is any interaction between the child and intermediate parent | |||
127 | nodes, is again defined entirely by the binding for the individual pin | 127 | nodes, is again defined entirely by the binding for the individual pin |
128 | controller device. | 128 | controller device. |
129 | 129 | ||
130 | == Using generic pinconfig options == | 130 | == Generic pin configuration node content == |
131 | 131 | ||
132 | Generic pinconfig parameters can be used by defining a separate node containing | 132 | Many data items that are represented in a pin configuration node are common |
133 | the applicable parameters (and optional values), like: | 133 | and generic. Pin control bindings should use the properties defined below |
134 | where they are applicable; not all of these properties are relevant or useful | ||
135 | for all hardware or binding structures. Each individual binding document | ||
136 | should state which of these generic properties, if any, are used, and the | ||
137 | structure of the DT nodes that contain these properties. | ||
134 | 138 | ||
135 | pcfg_pull_up: pcfg_pull_up { | 139 | Supported generic properties are: |
136 | bias-pull-up; | ||
137 | drive-strength = <20>; | ||
138 | }; | ||
139 | |||
140 | This node should then be referenced in the appropriate pinctrl node as a phandle | ||
141 | and parsed in the driver using the pinconf_generic_parse_dt_config function. | ||
142 | |||
143 | Supported configuration parameters are: | ||
144 | 140 | ||
141 | pins - the list of pins that properties in the node | ||
142 | apply to | ||
143 | function - the mux function to select | ||
145 | bias-disable - disable any pin bias | 144 | bias-disable - disable any pin bias |
146 | bias-high-impedance - high impedance mode ("third-state", "floating") | 145 | bias-high-impedance - high impedance mode ("third-state", "floating") |
147 | bias-bus-hold - latch weakly | 146 | bias-bus-hold - latch weakly |
@@ -160,7 +159,21 @@ low-power-disable - disable low power mode | |||
160 | output-low - set the pin to output mode with low level | 159 | output-low - set the pin to output mode with low level |
161 | output-high - set the pin to output mode with high level | 160 | output-high - set the pin to output mode with high level |
162 | 161 | ||
163 | Arguments for parameters: | 162 | Some of the generic properties take arguments. For those that do, the |
163 | arguments are described below. | ||
164 | |||
165 | - pins takes a list of pin names or IDs as a required argument. The specific | ||
166 | binding for the hardware defines: | ||
167 | - Whether the entries are integers or strings, and their meaning. | ||
168 | |||
169 | - function takes a list of function names/IDs as a required argument. The | ||
170 | specific binding for the hardware defines: | ||
171 | - Whether the entries are integers or strings, and their meaning. | ||
172 | - Whether only a single entry is allowed (which is applied to all entries | ||
173 | in the pins property), or whether there may alternatively be one entry per | ||
174 | entry in the pins property, in which case the list lengths must match, and | ||
175 | for each list index i, the function at list index i is applied to the pin | ||
176 | at list index i. | ||
164 | 177 | ||
165 | - bias-pull-up, -down and -pin-default take as optional argument on hardware | 178 | - 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. | 179 | supporting it the pull strength in Ohm. bias-disable will disable the pull. |
@@ -170,7 +183,5 @@ Arguments for parameters: | |||
170 | - input-debounce takes the debounce time in usec as argument | 183 | - input-debounce takes the debounce time in usec as argument |
171 | or 0 to disable debouncing | 184 | or 0 to disable debouncing |
172 | 185 | ||
173 | All parameters not listed here, do not take an argument. | ||
174 | |||
175 | More in-depth documentation on these parameters can be found in | 186 | More in-depth documentation on these parameters can be found in |
176 | <include/linux/pinctrl/pinconfig-generic.h> | 187 | <include/linux/pinctrl/pinconfig-generic.h> |
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt new file mode 100644 index 000000000000..734d9b04d533 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt | |||
@@ -0,0 +1,96 @@ | |||
1 | Palmas Pincontrol bindings | ||
2 | |||
3 | The pins of Palmas device can be set on different option and provides | ||
4 | the configuration for Pull UP/DOWN, open drain etc. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: It must be one of following: | ||
8 | - "ti,palmas-pinctrl" for Palma series of the pincontrol. | ||
9 | - "ti,tps65913-pinctrl" for Palma series device TPS65913. | ||
10 | - "ti,tps80036-pinctrl" for Palma series device TPS80036. | ||
11 | |||
12 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
13 | common pinctrl bindings used by client devices, including the meaning of the | ||
14 | phrase "pin configuration node". | ||
15 | |||
16 | Palmas's pin configuration nodes act as a container for an arbitrary number of | ||
17 | subnodes. Each of these subnodes represents some desired configuration for a | ||
18 | list of pins. This configuration can include the mux function to select on | ||
19 | those pin(s), and various pin configuration parameters, such as pull-up, | ||
20 | open drain. | ||
21 | |||
22 | The name of each subnode is not important; all subnodes should be enumerated | ||
23 | and processed purely based on their content. | ||
24 | |||
25 | Each subnode only affects those parameters that are explicitly listed. In | ||
26 | other words, a subnode that lists a mux function but no pin configuration | ||
27 | parameters implies no information about any pin configuration parameters. | ||
28 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
29 | information about e.g. the mux function. | ||
30 | |||
31 | Optional properties: | ||
32 | - ti,palmas-enable-dvfs1: Enable DVFS1. Configure pins for DVFS1 mode. | ||
33 | Selection primary or secondary function associated to I2C2_SCL_SCE, | ||
34 | I2C2_SDA_SDO pin/pad for DVFS1 interface | ||
35 | - ti,palmas-enable-dvfs2: Enable DVFS2. Configure pins for DVFS2 mode. | ||
36 | Selection primary or secondary function associated to GPADC_START | ||
37 | and SYSEN2 pin/pad for DVFS2 interface | ||
38 | |||
39 | This binding uses the following generic properties as defined in | ||
40 | pinctrl-bindings.txt: | ||
41 | |||
42 | Required: pins | ||
43 | Options: function, bias-disable, bias-pull-up, bias-pull-down, | ||
44 | bias-pin-default, drive-open-drain. | ||
45 | |||
46 | Note that many of these properties are only valid for certain specific pins. | ||
47 | See the Palmas device datasheet for complete details regarding which pins | ||
48 | support which functionality. | ||
49 | |||
50 | Valid values for pin names are: | ||
51 | gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, gpio9, | ||
52 | gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, vac, powergood, | ||
53 | nreswarm, pwrdown, gpadc_start, reset_in, nsleep, enable1, enable2, | ||
54 | int. | ||
55 | |||
56 | Valid value of function names are: | ||
57 | gpio, led, pwm, regen, sysen, clk32kgaudio, id, vbus_det, chrg_det, | ||
58 | vac, vacok, powergood, usb_psel, msecure, pwrhold, int, nreswarm, | ||
59 | simrsto, simrsti, low_vbat, wireless_chrg1, rcm, pwrdown, gpadc_start, | ||
60 | reset_in, nsleep, enable. | ||
61 | |||
62 | There are 4 special functions: opt0, opt1, opt2 and opt3. If any of these | ||
63 | functions is selected then directly pins register will be written with 0, 1, 2 | ||
64 | or 3 respectively if it is valid for that pins or list of pins. | ||
65 | |||
66 | Example: | ||
67 | palmas: tps65913 { | ||
68 | .... | ||
69 | pinctrl { | ||
70 | compatible = "ti,tps65913-pinctrl"; | ||
71 | ti,palmas-enable-dvfs1; | ||
72 | pinctrl-names = "default"; | ||
73 | pinctrl-0 = <&palmas_pins_state>; | ||
74 | |||
75 | palmas_pins_state: pinmux { | ||
76 | gpio0 { | ||
77 | pins = "gpio0"; | ||
78 | function = "id"; | ||
79 | bias-pull-up; | ||
80 | }; | ||
81 | |||
82 | vac { | ||
83 | pins = "vac"; | ||
84 | function = "vacok"; | ||
85 | bias-pull-down; | ||
86 | }; | ||
87 | |||
88 | gpio5 { | ||
89 | pins = "gpio5"; | ||
90 | function = "opt0"; | ||
91 | drive-open-drain = <1>; | ||
92 | }; | ||
93 | }; | ||
94 | }; | ||
95 | .... | ||
96 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index 36281e7a2a46..257677de3e6b 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt | |||
@@ -12,6 +12,7 @@ Required Properties: | |||
12 | - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller, | 12 | - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller, |
13 | - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller, | 13 | - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller, |
14 | - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, | 14 | - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, |
15 | - "samsung,s5pv210-pinctrl": for S5PV210-compatible pin-controller, | ||
15 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. | 16 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. |
16 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. | 17 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. |
17 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. | 18 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. |
@@ -128,7 +129,7 @@ B. External Wakeup Interrupts: For supporting external wakeup interrupts, a | |||
128 | - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller | 129 | - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller |
129 | found on Samsung S3C64xx SoCs, | 130 | found on Samsung S3C64xx SoCs, |
130 | - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller | 131 | - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller |
131 | found on Samsung Exynos4210 SoC. | 132 | found on Samsung Exynos4210 and S5PC110/S5PV210 SoCs. |
132 | - interrupt-parent: phandle of the interrupt parent to which the external | 133 | - interrupt-parent: phandle of the interrupt parent to which the external |
133 | wakeup interrupts are forwarded to. | 134 | wakeup interrupts are forwarded to. |
134 | - interrupts: interrupt used by multiplexed wakeup interrupts. | 135 | - interrupts: interrupt used by multiplexed wakeup interrupts. |
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt index 9a2f3f420526..6b33b9f18e88 100644 --- a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt +++ b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | ST Ericsson Nomadik pinmux controller | 1 | ST Ericsson Nomadik pinmux controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "stericsson,nmk-pinctrl", "stericsson,nmk-pinctrl-db8540", | 4 | - compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl", |
5 | "stericsson,nmk-pinctrl-stn8815" | 5 | "stericsson,stn8815-pinctrl" |
6 | - reg: Should contain the register physical address and length of the PRCMU. | 6 | - reg: Should contain the register physical address and length of the PRCMU. |
7 | 7 | ||
8 | Please refer to pinctrl-bindings.txt in this directory for details of the | 8 | Please refer to pinctrl-bindings.txt in this directory for details of the |
@@ -68,7 +68,7 @@ Optional subnode-properties: | |||
68 | Example board file extract: | 68 | Example board file extract: |
69 | 69 | ||
70 | pinctrl@80157000 { | 70 | pinctrl@80157000 { |
71 | compatible = "stericsson,nmk-pinctrl"; | 71 | compatible = "stericsson,db8500-pinctrl"; |
72 | reg = <0x80157000 0x2000>; | 72 | reg = <0x80157000 0x2000>; |
73 | 73 | ||
74 | pinctrl-names = "default"; | 74 | pinctrl-names = "default"; |
diff --git a/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt b/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt new file mode 100644 index 000000000000..ce44ad357565 --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | MSM Restart Driver | ||
2 | |||
3 | A power supply hold (ps-hold) bit is set to power the msm chipsets. | ||
4 | Clearing that bit allows us to restart/poweroff. The difference | ||
5 | between poweroff and restart is determined by unique power manager IC | ||
6 | settings. | ||
7 | |||
8 | Required Properties: | ||
9 | -compatible: "qcom,pshold" | ||
10 | -reg: Specifies the physical address of the ps-hold register | ||
11 | |||
12 | Example: | ||
13 | |||
14 | restart@fc4ab000 { | ||
15 | compatible = "qcom,pshold"; | ||
16 | reg = <0xfc4ab000 0x4>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt b/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt index 5693877ab377..82dd5b65cf48 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt | |||
@@ -1,21 +1,20 @@ | |||
1 | * Freescale MSI interrupt controller | 1 | * Freescale MSI interrupt controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : compatible list, contains 2 entries, | 4 | - compatible : compatible list, may contain one or two entries |
5 | first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572, | 5 | The first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572, |
6 | etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on | 6 | etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" or |
7 | the parent type. | 7 | "fsl,mpic-msi-v4.3" depending on the parent type and version. If mpic |
8 | version is 4.3, the number of MSI registers is increased to 16, MSIIR1 is | ||
9 | provided to access these 16 registers, and compatible "fsl,mpic-msi-v4.3" | ||
10 | should be used. The first entry is optional; the second entry is | ||
11 | required. | ||
8 | 12 | ||
9 | - reg : It may contain one or two regions. The first region should contain | 13 | - reg : It may contain one or two regions. The first region should contain |
10 | the address and the length of the shared message interrupt register set. | 14 | the address and the length of the shared message interrupt register set. |
11 | The second region should contain the address of aliased MSIIR register for | 15 | The second region should contain the address of aliased MSIIR or MSIIR1 |
12 | platforms that have such an alias. | 16 | register for platforms that have such an alias, if using MSIIR1, the second |
13 | 17 | region must be added because different MSI group has different MSIIR1 offset. | |
14 | - msi-available-ranges: use <start count> style section to define which | ||
15 | msi interrupt can be used in the 256 msi interrupts. This property is | ||
16 | optional, without this, all the 256 MSI interrupts can be used. | ||
17 | Each available range must begin and end on a multiple of 32 (i.e. | ||
18 | no splitting an individual MSI register or the associated PIC interrupt). | ||
19 | 18 | ||
20 | - interrupts : each one of the interrupts here is one entry per 32 MSIs, | 19 | - interrupts : each one of the interrupts here is one entry per 32 MSIs, |
21 | and routed to the host interrupt controller. the interrupts should | 20 | and routed to the host interrupt controller. the interrupts should |
@@ -28,6 +27,14 @@ Required properties: | |||
28 | to MPIC. | 27 | to MPIC. |
29 | 28 | ||
30 | Optional properties: | 29 | Optional properties: |
30 | - msi-available-ranges: use <start count> style section to define which | ||
31 | msi interrupt can be used in the 256 msi interrupts. This property is | ||
32 | optional, without this, all the MSI interrupts can be used. | ||
33 | Each available range must begin and end on a multiple of 32 (i.e. | ||
34 | no splitting an individual MSI register or the associated PIC interrupt). | ||
35 | MPIC v4.3 does not support this property because the 32 interrupts of an | ||
36 | individual register are not continuous when using MSIIR1. | ||
37 | |||
31 | - msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register | 38 | - msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register |
32 | is used for MSI messaging. The address of MSIIR in PCI address space is | 39 | is used for MSI messaging. The address of MSIIR in PCI address space is |
33 | the MSI message address. | 40 | the MSI message address. |
@@ -54,6 +61,28 @@ Example: | |||
54 | interrupt-parent = <&mpic>; | 61 | interrupt-parent = <&mpic>; |
55 | }; | 62 | }; |
56 | 63 | ||
64 | msi@41600 { | ||
65 | compatible = "fsl,mpic-msi-v4.3"; | ||
66 | reg = <0x41600 0x200 0x44148 4>; | ||
67 | interrupts = < | ||
68 | 0xe0 0 0 0 | ||
69 | 0xe1 0 0 0 | ||
70 | 0xe2 0 0 0 | ||
71 | 0xe3 0 0 0 | ||
72 | 0xe4 0 0 0 | ||
73 | 0xe5 0 0 0 | ||
74 | 0xe6 0 0 0 | ||
75 | 0xe7 0 0 0 | ||
76 | 0x100 0 0 0 | ||
77 | 0x101 0 0 0 | ||
78 | 0x102 0 0 0 | ||
79 | 0x103 0 0 0 | ||
80 | 0x104 0 0 0 | ||
81 | 0x105 0 0 0 | ||
82 | 0x106 0 0 0 | ||
83 | 0x107 0 0 0>; | ||
84 | }; | ||
85 | |||
57 | The Freescale hypervisor and msi-address-64 | 86 | The Freescale hypervisor and msi-address-64 |
58 | ------------------------------------------- | 87 | ------------------------------------------- |
59 | Normally, PCI devices have access to all of CCSR via an ATMU mapping. The | 88 | Normally, PCI devices have access to all of CCSR via an ATMU mapping. The |
diff --git a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt index de0eaed86651..8031148bcf85 100644 --- a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt | |||
@@ -2,11 +2,9 @@ Atmel TCB PWM controller | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "atmel,tcb-pwm" | 4 | - compatible: should be "atmel,tcb-pwm" |
5 | - #pwm-cells: Should be 3. The first cell specifies the per-chip index | 5 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
6 | of the PWM to use, the second cell is the period in nanoseconds and | 6 | the cells format. The only third cell flag supported by this binding is |
7 | bit 0 in the third cell is used to encode the polarity of PWM output. | 7 | PWM_POLARITY_INVERTED. |
8 | Set bit 0 of the third cell in PWM specifier to 1 for inverse polarity & | ||
9 | set to 0 for normal polarity. | ||
10 | - tc-block: The Timer Counter block to use as a PWM chip. | 8 | - tc-block: The Timer Counter block to use as a PWM chip. |
11 | 9 | ||
12 | Example: | 10 | Example: |
diff --git a/Documentation/devicetree/bindings/pwm/imx-pwm.txt b/Documentation/devicetree/bindings/pwm/imx-pwm.txt index 8522bfbccfd7..b50d7a6d9d7f 100644 --- a/Documentation/devicetree/bindings/pwm/imx-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/imx-pwm.txt | |||
@@ -3,8 +3,8 @@ Freescale i.MX PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "fsl,<soc>-pwm" | 4 | - compatible: should be "fsl,<soc>-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | the cells format. |
8 | - interrupts: The interrupt for the pwm controller | 8 | - interrupts: The interrupt for the pwm controller |
9 | 9 | ||
10 | Example: | 10 | Example: |
diff --git a/Documentation/devicetree/bindings/pwm/mxs-pwm.txt b/Documentation/devicetree/bindings/pwm/mxs-pwm.txt index 9e3f8f1d46a2..96cdde5f6208 100644 --- a/Documentation/devicetree/bindings/pwm/mxs-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/mxs-pwm.txt | |||
@@ -3,8 +3,8 @@ Freescale MXS PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "fsl,imx23-pwm" | 4 | - compatible: should be "fsl,imx23-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | the cells format. |
8 | - fsl,pwm-number: the number of PWM devices | 8 | - fsl,pwm-number: the number of PWM devices |
9 | 9 | ||
10 | Example: | 10 | Example: |
diff --git a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt index 01438ecd6628..c3fc57af8772 100644 --- a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | |||
@@ -5,9 +5,8 @@ Required properties: | |||
5 | - "nvidia,tegra20-pwm" | 5 | - "nvidia,tegra20-pwm" |
6 | - "nvidia,tegra30-pwm" | 6 | - "nvidia,tegra30-pwm" |
7 | - reg: physical base address and length of the controller's registers | 7 | - reg: physical base address and length of the controller's registers |
8 | - #pwm-cells: On Tegra the number of cells used to specify a PWM is 2. The | 8 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
9 | first cell specifies the per-chip index of the PWM to use and the second | 9 | the cells format. |
10 | cell is the period in nanoseconds. | ||
11 | 10 | ||
12 | Example: | 11 | Example: |
13 | 12 | ||
diff --git a/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt b/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt index 1e3dfe7a4894..f84ec9d291ea 100644 --- a/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt | |||
@@ -3,8 +3,8 @@ NXP PCA9685 16-channel 12-bit PWM LED controller | |||
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible: "nxp,pca9685-pwm" | 5 | - compatible: "nxp,pca9685-pwm" |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: Should be 2. See pwm.txt in this directory for a description of |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | the cells format. |
8 | The index 16 is the ALLCALL channel, that sets all PWM channels at the same | 8 | The index 16 is the ALLCALL channel, that sets all PWM channels at the same |
9 | time. | 9 | time. |
10 | 10 | ||
diff --git a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt index ac67c687a327..d61fccd40bad 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt +++ b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt | |||
@@ -19,13 +19,19 @@ Required properties: | |||
19 | - reg: base address and size of register area | 19 | - reg: base address and size of register area |
20 | - interrupts: list of timer interrupts (one interrupt per timer, starting at | 20 | - interrupts: list of timer interrupts (one interrupt per timer, starting at |
21 | timer 0) | 21 | timer 0) |
22 | - #pwm-cells: number of cells used for PWM specifier - must be 3 | 22 | - clock-names: should contain all following required clock names: |
23 | the specifier format is as follows: | 23 | - "timers" - PWM base clock used to generate PWM signals, |
24 | - phandle to PWM controller node | 24 | and any subset of following optional clock names: |
25 | - index of PWM channel (from 0 to 4) | 25 | - "pwm-tclk0" - first external PWM clock source, |
26 | - PWM signal period in nanoseconds | 26 | - "pwm-tclk1" - second external PWM clock source. |
27 | - bitmask of optional PWM flags: | 27 | Note that not all IP variants allow using all external clock sources. |
28 | 0x1 - invert PWM signal | 28 | Refer to SoC documentation to learn which clock source configurations |
29 | are available. | ||
30 | - clocks: should contain clock specifiers of all clocks, which input names | ||
31 | have been specified in clock-names property, in same order. | ||
32 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of | ||
33 | the cells format. The only third cell flag supported by this binding is | ||
34 | PWM_POLARITY_INVERTED. | ||
29 | 35 | ||
30 | Optional properties: | 36 | Optional properties: |
31 | - samsung,pwm-outputs: list of PWM channels used as PWM outputs on particular | 37 | - samsung,pwm-outputs: list of PWM channels used as PWM outputs on particular |
@@ -38,6 +44,8 @@ Example: | |||
38 | reg = <0x7f006000 0x1000>; | 44 | reg = <0x7f006000 0x1000>; |
39 | interrupt-parent = <&vic0>; | 45 | interrupt-parent = <&vic0>; |
40 | interrupts = <23>, <24>, <25>, <27>, <28>; | 46 | interrupts = <23>, <24>, <25>, <27>, <28>; |
47 | clocks = <&clock 67>; | ||
48 | clock-names = "timers"; | ||
41 | samsung,pwm-outputs = <0>, <1>; | 49 | samsung,pwm-outputs = <0>, <1>; |
42 | #pwm-cells = <3>; | 50 | #pwm-cells = <3>; |
43 | } | 51 | } |
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt index 681afad73778..fb81179dce37 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt +++ b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt | |||
@@ -4,11 +4,9 @@ Required properties: | |||
4 | - compatible: Must be "ti,<soc>-ecap". | 4 | - compatible: Must be "ti,<soc>-ecap". |
5 | for am33xx - compatible = "ti,am33xx-ecap"; | 5 | for am33xx - compatible = "ti,am33xx-ecap"; |
6 | for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; | 6 | for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; |
7 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. | 7 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
8 | First cell specifies the per-chip index of the PWM to use, the second | 8 | the cells format. The PWM channel index ranges from 0 to 4. The only third |
9 | cell is the period in nanoseconds and bit 0 in the third cell is used to | 9 | cell flag supported by this binding is PWM_POLARITY_INVERTED. |
10 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
11 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
12 | - reg: physical base address and size of the registers map. | 10 | - reg: physical base address and size of the registers map. |
13 | 11 | ||
14 | Optional properties: | 12 | Optional properties: |
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt index 337c6fc65d3f..9c100b2c5b23 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt +++ b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt | |||
@@ -4,11 +4,9 @@ Required properties: | |||
4 | - compatible: Must be "ti,<soc>-ehrpwm". | 4 | - compatible: Must be "ti,<soc>-ehrpwm". |
5 | for am33xx - compatible = "ti,am33xx-ehrpwm"; | 5 | for am33xx - compatible = "ti,am33xx-ehrpwm"; |
6 | for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; | 6 | for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; |
7 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. | 7 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
8 | First cell specifies the per-chip index of the PWM to use, the second | 8 | the cells format. The only third cell flag supported by this binding is |
9 | cell is the period in nanoseconds and bit 0 in the third cell is used to | 9 | PWM_POLARITY_INVERTED. |
10 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
11 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
12 | - reg: physical base address and size of the registers map. | 10 | - reg: physical base address and size of the registers map. |
13 | 11 | ||
14 | Optional properties: | 12 | Optional properties: |
diff --git a/Documentation/devicetree/bindings/pwm/pwm.txt b/Documentation/devicetree/bindings/pwm/pwm.txt index 06e67247859a..8556263b8502 100644 --- a/Documentation/devicetree/bindings/pwm/pwm.txt +++ b/Documentation/devicetree/bindings/pwm/pwm.txt | |||
@@ -43,13 +43,14 @@ because the name "backlight" would be used as fallback anyway. | |||
43 | pwm-specifier typically encodes the chip-relative PWM number and the PWM | 43 | pwm-specifier typically encodes the chip-relative PWM number and the PWM |
44 | period in nanoseconds. | 44 | period in nanoseconds. |
45 | 45 | ||
46 | Optionally, the pwm-specifier can encode a number of flags in a third cell: | 46 | Optionally, the pwm-specifier can encode a number of flags (defined in |
47 | - bit 0: PWM signal polarity (0: normal polarity, 1: inverse polarity) | 47 | <dt-bindings/pwm/pwm.h>) in a third cell: |
48 | - PWM_POLARITY_INVERTED: invert the PWM signal polarity | ||
48 | 49 | ||
49 | Example with optional PWM specifier for inverse polarity | 50 | Example with optional PWM specifier for inverse polarity |
50 | 51 | ||
51 | bl: backlight { | 52 | bl: backlight { |
52 | pwms = <&pwm 0 5000000 1>; | 53 | pwms = <&pwm 0 5000000 PWM_POLARITY_INVERTED>; |
53 | pwm-names = "backlight"; | 54 | pwm-names = "backlight"; |
54 | }; | 55 | }; |
55 | 56 | ||
diff --git a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt new file mode 100644 index 000000000000..b067e84a94b5 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | * Renesas R-Car Timer Pulse Unit PWM Controller | ||
2 | |||
3 | Required Properties: | ||
4 | |||
5 | - compatible: should be one of the following. | ||
6 | - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller. | ||
7 | - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller. | ||
8 | - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller. | ||
9 | - "renesas,tpu-sh7372": for SH7372 (SH-Mobile AP4) compatible PWM controller. | ||
10 | - "renesas,tpu": for generic R-Car TPU PWM controller. | ||
11 | |||
12 | - reg: Base address and length of each memory resource used by the PWM | ||
13 | controller hardware module. | ||
14 | |||
15 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of | ||
16 | the cells format. The only third cell flag supported by this binding is | ||
17 | PWM_POLARITY_INVERTED. | ||
18 | |||
19 | Please refer to pwm.txt in this directory for details of the common PWM bindings | ||
20 | used by client devices. | ||
21 | |||
22 | Example: R8A7740 (R-Car A1) TPU controller node | ||
23 | |||
24 | tpu: pwm@e6600000 { | ||
25 | compatible = "renesas,tpu-r8a7740", "renesas,tpu"; | ||
26 | reg = <0xe6600000 0x100>; | ||
27 | #pwm-cells = <3>; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/pwm/spear-pwm.txt b/Documentation/devicetree/bindings/pwm/spear-pwm.txt index 3ac779d83386..b486de2c3fe3 100644 --- a/Documentation/devicetree/bindings/pwm/spear-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/spear-pwm.txt | |||
@@ -5,9 +5,8 @@ Required properties: | |||
5 | - "st,spear320-pwm" | 5 | - "st,spear320-pwm" |
6 | - "st,spear1340-pwm" | 6 | - "st,spear1340-pwm" |
7 | - reg: physical base address and length of the controller's registers | 7 | - reg: physical base address and length of the controller's registers |
8 | - #pwm-cells: number of cells used to specify PWM which is fixed to 2 on | 8 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
9 | SPEAr. The first cell specifies the per-chip index of the PWM to use and | 9 | the cells format. |
10 | the second cell is the period in nanoseconds. | ||
11 | 10 | ||
12 | Example: | 11 | Example: |
13 | 12 | ||
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt index 2943ee5fce00..4e32bee11201 100644 --- a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt | |||
@@ -6,8 +6,8 @@ On TWL6030 series: PWM0 and PWM1 | |||
6 | 6 | ||
7 | Required properties: | 7 | Required properties: |
8 | - compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm" | 8 | - compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm" |
9 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 9 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
10 | of the PWM to use and the second cell is the period in nanoseconds. | 10 | the cells format. |
11 | 11 | ||
12 | Example: | 12 | Example: |
13 | 13 | ||
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt index cb64f3acc10f..9f4b46090782 100644 --- a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt +++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt | |||
@@ -6,8 +6,8 @@ On TWL6030 series: LED PWM (mainly used as charging indicator LED) | |||
6 | 6 | ||
7 | Required properties: | 7 | Required properties: |
8 | - compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled" | 8 | - compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled" |
9 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 9 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
10 | of the PWM to use and the second cell is the period in nanoseconds. | 10 | the cells format. |
11 | 11 | ||
12 | Example: | 12 | Example: |
13 | 13 | ||
diff --git a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt index d21d82d29855..a76390e6df2e 100644 --- a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt | |||
@@ -3,11 +3,9 @@ VIA/Wondermedia VT8500/WM8xxx series SoC PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "via,vt8500-pwm" | 4 | - compatible: should be "via,vt8500-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. | 6 | - #pwm-cells: should be 3. See pwm.txt in this directory for a description of |
7 | First cell specifies the per-chip index of the PWM to use, the second | 7 | the cells format. The only third cell flag supported by this binding is |
8 | cell is the period in nanoseconds and bit 0 in the third cell is used to | 8 | PWM_POLARITY_INVERTED. |
9 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
10 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
11 | - clocks: phandle to the PWM source clock | 9 | - clocks: phandle to the PWM source clock |
12 | 10 | ||
13 | Example: | 11 | Example: |
diff --git a/Documentation/devicetree/bindings/regulator/88pm800.txt b/Documentation/devicetree/bindings/regulator/88pm800.txt new file mode 100644 index 000000000000..e8a54c2a5821 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/88pm800.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Marvell 88PM800 regulator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "marvell,88pm800" | ||
5 | - reg: I2C slave address | ||
6 | - regulators: A node that houses a sub-node for each regulator within the | ||
7 | device. Each sub-node is identified using the node's name (or the deprecated | ||
8 | regulator-compatible property if present), with valid values listed below. | ||
9 | The content of each sub-node is defined by the standard binding for | ||
10 | regulators; see regulator.txt. | ||
11 | |||
12 | The valid names for regulators are: | ||
13 | |||
14 | buck1, buck2, buck3, buck4, buck5, ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7, | ||
15 | ldo8, ldo9, ldo10, ldo11, ldo12, ldo13, ldo14, ldo15, ldo16, ldo17, ldo18, ldo19 | ||
16 | |||
17 | Example: | ||
18 | |||
19 | pmic: 88pm800@31 { | ||
20 | compatible = "marvell,88pm800"; | ||
21 | reg = <0x31>; | ||
22 | |||
23 | regulators { | ||
24 | buck1 { | ||
25 | regulator-min-microvolt = <600000>; | ||
26 | regulator-max-microvolt = <3950000>; | ||
27 | regulator-boot-on; | ||
28 | regulator-always-on; | ||
29 | }; | ||
30 | ldo1 { | ||
31 | regulator-min-microvolt = <600000>; | ||
32 | regulator-max-microvolt = <15000000>; | ||
33 | regulator-boot-on; | ||
34 | regulator-always-on; | ||
35 | }; | ||
36 | ... | ||
37 | }; | ||
38 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/max8660.txt b/Documentation/devicetree/bindings/regulator/max8660.txt new file mode 100644 index 000000000000..8ba994d8a142 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/max8660.txt | |||
@@ -0,0 +1,47 @@ | |||
1 | Maxim MAX8660 voltage regulator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: must be one of "maxim,max8660", "maxim,max8661" | ||
5 | - reg: I2C slave address, usually 0x34 | ||
6 | - any required generic properties defined in regulator.txt | ||
7 | |||
8 | Example: | ||
9 | |||
10 | i2c_master { | ||
11 | max8660@34 { | ||
12 | compatible = "maxim,max8660"; | ||
13 | reg = <0x34>; | ||
14 | |||
15 | regulators { | ||
16 | regulator@0 { | ||
17 | regulator-compatible= "V3(DCDC)"; | ||
18 | regulator-min-microvolt = <725000>; | ||
19 | regulator-max-microvolt = <1800000>; | ||
20 | }; | ||
21 | |||
22 | regulator@1 { | ||
23 | regulator-compatible= "V4(DCDC)"; | ||
24 | regulator-min-microvolt = <725000>; | ||
25 | regulator-max-microvolt = <1800000>; | ||
26 | }; | ||
27 | |||
28 | regulator@2 { | ||
29 | regulator-compatible= "V5(LDO)"; | ||
30 | regulator-min-microvolt = <1700000>; | ||
31 | regulator-max-microvolt = <2000000>; | ||
32 | }; | ||
33 | |||
34 | regulator@3 { | ||
35 | regulator-compatible= "V6(LDO)"; | ||
36 | regulator-min-microvolt = <1800000>; | ||
37 | regulator-max-microvolt = <3300000>; | ||
38 | }; | ||
39 | |||
40 | regulator@4 { | ||
41 | regulator-compatible= "V7(LDO)"; | ||
42 | regulator-min-microvolt = <1800000>; | ||
43 | regulator-max-microvolt = <3300000>; | ||
44 | }; | ||
45 | }; | ||
46 | }; | ||
47 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt index 30b0581bb1ce..875639ae0606 100644 --- a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt +++ b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt | |||
@@ -25,8 +25,8 @@ Optional nodes: | |||
25 | Additional custom properties are listed below. | 25 | Additional custom properties are listed below. |
26 | 26 | ||
27 | For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP, | 27 | For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP, |
28 | smps45, smps457, smps7 depending on variant, smps6, smps[8-10], | 28 | smps45, smps457, smps7 depending on variant, smps6, smps[8-9], |
29 | ldo[1-9], ldoln, ldousb. | 29 | smps10_out2, smps10_out1, do[1-9], ldoln, ldousb. |
30 | 30 | ||
31 | Optional sub-node properties: | 31 | Optional sub-node properties: |
32 | ti,warm-reset - maintain voltage during warm reset(boolean) | 32 | ti,warm-reset - maintain voltage during warm reset(boolean) |
@@ -36,6 +36,9 @@ Optional nodes: | |||
36 | ti,smps-range - OTP has the wrong range set for the hardware so override | 36 | ti,smps-range - OTP has the wrong range set for the hardware so override |
37 | 0 - low range, 1 - high range. | 37 | 0 - low range, 1 - high range. |
38 | 38 | ||
39 | - ti,system-power-controller: Telling whether or not this pmic is controlling | ||
40 | the system power. | ||
41 | |||
39 | Example: | 42 | Example: |
40 | 43 | ||
41 | #include <dt-bindings/interrupt-controller/irq.h> | 44 | #include <dt-bindings/interrupt-controller/irq.h> |
@@ -48,6 +51,8 @@ pmic { | |||
48 | 51 | ||
49 | ti,ldo6-vibrator; | 52 | ti,ldo6-vibrator; |
50 | 53 | ||
54 | ti,system-power-controller; | ||
55 | |||
51 | regulators { | 56 | regulators { |
52 | smps12_reg : smps12 { | 57 | smps12_reg : smps12 { |
53 | regulator-name = "smps12"; | 58 | regulator-name = "smps12"; |
diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt new file mode 100644 index 000000000000..fc989b2e8057 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt | |||
@@ -0,0 +1,115 @@ | |||
1 | PFUZE100 family of regulators | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "fsl,pfuze100" | ||
5 | - reg: I2C slave address | ||
6 | |||
7 | Required child node: | ||
8 | - regulators: This is the list of child nodes that specify the regulator | ||
9 | initialization data for defined regulators. Please refer to below doc | ||
10 | Documentation/devicetree/bindings/regulator/regulator.txt. | ||
11 | |||
12 | The valid names for regulators are: | ||
13 | sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6 | ||
14 | |||
15 | Each regulator is defined using the standard binding for regulators. | ||
16 | |||
17 | Example: | ||
18 | |||
19 | pmic: pfuze100@08 { | ||
20 | compatible = "fsl,pfuze100"; | ||
21 | reg = <0x08>; | ||
22 | |||
23 | regulators { | ||
24 | sw1a_reg: sw1ab { | ||
25 | regulator-min-microvolt = <300000>; | ||
26 | regulator-max-microvolt = <1875000>; | ||
27 | regulator-boot-on; | ||
28 | regulator-always-on; | ||
29 | regulator-ramp-delay = <6250>; | ||
30 | }; | ||
31 | |||
32 | sw1c_reg: sw1c { | ||
33 | regulator-min-microvolt = <300000>; | ||
34 | regulator-max-microvolt = <1875000>; | ||
35 | regulator-boot-on; | ||
36 | regulator-always-on; | ||
37 | }; | ||
38 | |||
39 | sw2_reg: sw2 { | ||
40 | regulator-min-microvolt = <800000>; | ||
41 | regulator-max-microvolt = <3300000>; | ||
42 | regulator-boot-on; | ||
43 | regulator-always-on; | ||
44 | }; | ||
45 | |||
46 | sw3a_reg: sw3a { | ||
47 | regulator-min-microvolt = <400000>; | ||
48 | regulator-max-microvolt = <1975000>; | ||
49 | regulator-boot-on; | ||
50 | regulator-always-on; | ||
51 | }; | ||
52 | |||
53 | sw3b_reg: sw3b { | ||
54 | regulator-min-microvolt = <400000>; | ||
55 | regulator-max-microvolt = <1975000>; | ||
56 | regulator-boot-on; | ||
57 | regulator-always-on; | ||
58 | }; | ||
59 | |||
60 | sw4_reg: sw4 { | ||
61 | regulator-min-microvolt = <800000>; | ||
62 | regulator-max-microvolt = <3300000>; | ||
63 | }; | ||
64 | |||
65 | swbst_reg: swbst { | ||
66 | regulator-min-microvolt = <5000000>; | ||
67 | regulator-max-microvolt = <5150000>; | ||
68 | }; | ||
69 | |||
70 | snvs_reg: vsnvs { | ||
71 | regulator-min-microvolt = <1000000>; | ||
72 | regulator-max-microvolt = <3000000>; | ||
73 | regulator-boot-on; | ||
74 | regulator-always-on; | ||
75 | }; | ||
76 | |||
77 | vref_reg: vrefddr { | ||
78 | regulator-boot-on; | ||
79 | regulator-always-on; | ||
80 | }; | ||
81 | |||
82 | vgen1_reg: vgen1 { | ||
83 | regulator-min-microvolt = <800000>; | ||
84 | regulator-max-microvolt = <1550000>; | ||
85 | }; | ||
86 | |||
87 | vgen2_reg: vgen2 { | ||
88 | regulator-min-microvolt = <800000>; | ||
89 | regulator-max-microvolt = <1550000>; | ||
90 | }; | ||
91 | |||
92 | vgen3_reg: vgen3 { | ||
93 | regulator-min-microvolt = <1800000>; | ||
94 | regulator-max-microvolt = <3300000>; | ||
95 | }; | ||
96 | |||
97 | vgen4_reg: vgen4 { | ||
98 | regulator-min-microvolt = <1800000>; | ||
99 | regulator-max-microvolt = <3300000>; | ||
100 | regulator-always-on; | ||
101 | }; | ||
102 | |||
103 | vgen5_reg: vgen5 { | ||
104 | regulator-min-microvolt = <1800000>; | ||
105 | regulator-max-microvolt = <3300000>; | ||
106 | regulator-always-on; | ||
107 | }; | ||
108 | |||
109 | vgen6_reg: vgen6 { | ||
110 | regulator-min-microvolt = <1800000>; | ||
111 | regulator-max-microvolt = <3300000>; | ||
112 | regulator-always-on; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt index 48a3b8e5d6bd..2bd8f0978765 100644 --- a/Documentation/devicetree/bindings/regulator/regulator.txt +++ b/Documentation/devicetree/bindings/regulator/regulator.txt | |||
@@ -12,6 +12,8 @@ Optional properties: | |||
12 | - regulator-allow-bypass: allow the regulator to go into bypass mode | 12 | - regulator-allow-bypass: allow the regulator to go into bypass mode |
13 | - <name>-supply: phandle to the parent supply/regulator node | 13 | - <name>-supply: phandle to the parent supply/regulator node |
14 | - regulator-ramp-delay: ramp delay for regulator(in uV/uS) | 14 | - regulator-ramp-delay: ramp delay for regulator(in uV/uS) |
15 | For hardwares which support disabling ramp rate, it should be explicitly | ||
16 | intialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay. | ||
15 | 17 | ||
16 | Deprecated properties: | 18 | Deprecated properties: |
17 | - regulator-compatible: If a regulator chip contains multiple | 19 | - regulator-compatible: If a regulator chip contains multiple |
diff --git a/Documentation/devicetree/bindings/rtc/dw-apb.txt b/Documentation/devicetree/bindings/rtc/dw-apb.txt index eb2327b2bdb3..c703d51abb6c 100644 --- a/Documentation/devicetree/bindings/rtc/dw-apb.txt +++ b/Documentation/devicetree/bindings/rtc/dw-apb.txt | |||
@@ -1,7 +1,10 @@ | |||
1 | * Designware APB timer | 1 | * Designware APB timer |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "snps,dw-apb-timer-sp" or "snps,dw-apb-timer-osc" | 4 | - compatible: One of: |
5 | "snps,dw-apb-timer" | ||
6 | "snps,dw-apb-timer-sp" <DEPRECATED> | ||
7 | "snps,dw-apb-timer-osc" <DEPRECATED> | ||
5 | - reg: physical base address of the controller and length of memory mapped | 8 | - reg: physical base address of the controller and length of memory mapped |
6 | region. | 9 | region. |
7 | - interrupts: IRQ line for the timer. | 10 | - interrupts: IRQ line for the timer. |
@@ -20,25 +23,10 @@ systems may use one. | |||
20 | 23 | ||
21 | 24 | ||
22 | Example: | 25 | Example: |
23 | 26 | timer@ffe00000 { | |
24 | timer1: timer@ffc09000 { | 27 | compatible = "snps,dw-apb-timer"; |
25 | compatible = "snps,dw-apb-timer-sp"; | 28 | interrupts = <0 170 4>; |
26 | interrupts = <0 168 4>; | 29 | reg = <0xffe00000 0x1000>; |
27 | clock-frequency = <200000000>; | 30 | clocks = <&timer_clk>, <&timer_pclk>; |
28 | reg = <0xffc09000 0x1000>; | 31 | clock-names = "timer", "pclk"; |
29 | }; | 32 | }; |
30 | |||
31 | timer2: timer@ffd00000 { | ||
32 | compatible = "snps,dw-apb-timer-osc"; | ||
33 | interrupts = <0 169 4>; | ||
34 | clock-frequency = <200000000>; | ||
35 | reg = <0xffd00000 0x1000>; | ||
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/rtc/moxa,moxart-rtc.txt b/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt new file mode 100644 index 000000000000..c9d3ac1477fe --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | MOXA ART real-time clock | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Should be "moxa,moxart-rtc" | ||
6 | - gpio-rtc-sclk : RTC sclk gpio, with zero flags | ||
7 | - gpio-rtc-data : RTC data gpio, with zero flags | ||
8 | - gpio-rtc-reset : RTC reset gpio, with zero flags | ||
9 | |||
10 | Example: | ||
11 | |||
12 | rtc: rtc { | ||
13 | compatible = "moxa,moxart-rtc"; | ||
14 | gpio-rtc-sclk = <&gpio 5 0>; | ||
15 | gpio-rtc-data = <&gpio 6 0>; | ||
16 | gpio-rtc-reset = <&gpio 7 0>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/rtc-omap.txt b/Documentation/devicetree/bindings/rtc/rtc-omap.txt index b47aa415c820..5a0f02d34d95 100644 --- a/Documentation/devicetree/bindings/rtc/rtc-omap.txt +++ b/Documentation/devicetree/bindings/rtc/rtc-omap.txt | |||
@@ -1,7 +1,11 @@ | |||
1 | TI Real Time Clock | 1 | TI Real Time Clock |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "ti,da830-rtc" | 4 | - compatible: |
5 | - "ti,da830-rtc" - for RTC IP used similar to that on DA8xx SoC family. | ||
6 | - "ti,am3352-rtc" - for RTC IP used similar to that on AM335x SoC family. | ||
7 | This RTC IP has special WAKE-EN Register to enable | ||
8 | Wakeup generation for event Alarm. | ||
5 | - reg: Address range of rtc register set | 9 | - reg: Address range of rtc register set |
6 | - interrupts: rtc timer, alarm interrupts in order | 10 | - interrupts: rtc timer, alarm interrupts in order |
7 | - interrupt-parent: phandle for the interrupt controller | 11 | - interrupt-parent: phandle for the interrupt controller |
diff --git a/Documentation/devicetree/bindings/rtc/rtc-palmas.txt b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt new file mode 100644 index 000000000000..adbccc0a51e1 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | Palmas RTC controller bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | - "ti,palmas-rtc" for palma series of the RTC controller | ||
6 | - interrupt-parent: Parent interrupt device, must be handle of palmas node. | ||
7 | - interrupts: Interrupt number of RTC submodule on device. | ||
8 | |||
9 | Optional properties: | ||
10 | |||
11 | - ti,backup-battery-chargeable: The Palmas series device like TPS65913 or | ||
12 | TPS80036 supports the backup battery for powering the RTC when main | ||
13 | battery is removed or in very low power state. The backup battery | ||
14 | can be chargeable or non-chargeable. This flag will tells whether | ||
15 | battery is chargeable or not. If charging battery then driver can | ||
16 | enable the charging. | ||
17 | - ti,backup-battery-charge-high-current: Enable high current charging in | ||
18 | backup battery. Device supports the < 100mA and > 100mA charging. | ||
19 | The high current will be > 100mA. Absence of this property will | ||
20 | charge battery to lower current i.e. < 100mA. | ||
21 | |||
22 | Example: | ||
23 | palmas: tps65913@58 { | ||
24 | ... | ||
25 | palmas_rtc: rtc { | ||
26 | compatible = "ti,palmas-rtc"; | ||
27 | interrupt-parent = <&palmas>; | ||
28 | interrupts = <8 0>; | ||
29 | ti,backup-battery-chargeable; | ||
30 | ti,backup-battery-charge-high-current; | ||
31 | }; | ||
32 | ... | ||
33 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt index c152f65f9a28..55a901051e8f 100644 --- a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt +++ b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | Altera JTAG UART | 1 | Altera JTAG UART |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,juart-1.0" | 4 | - compatible : should be "ALTR,juart-1.0" <DEPRECATED> |
5 | - compatible : should be "altr,juart-1.0" | ||
diff --git a/Documentation/devicetree/bindings/serial/altera_uart.txt b/Documentation/devicetree/bindings/serial/altera_uart.txt index 71cae3f70100..81bf7ffb1a81 100644 --- a/Documentation/devicetree/bindings/serial/altera_uart.txt +++ b/Documentation/devicetree/bindings/serial/altera_uart.txt | |||
@@ -1,7 +1,8 @@ | |||
1 | Altera UART | 1 | Altera UART |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,uart-1.0" | 4 | - compatible : should be "ALTR,uart-1.0" <DEPRECATED> |
5 | - compatible : should be "altr,uart-1.0" | ||
5 | 6 | ||
6 | Optional properties: | 7 | Optional properties: |
7 | - clock-frequency : frequency of the clock input to the UART | 8 | - clock-frequency : frequency of the clock input to the UART |
diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/serial/arc-uart.txt index 5cae2eb686f8..5cae2eb686f8 100644 --- a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt +++ b/Documentation/devicetree/bindings/serial/arc-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt b/Documentation/devicetree/bindings/serial/atmel-usart.txt index a49d9a1d4ccf..2191dcb9f1da 100644 --- a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt +++ b/Documentation/devicetree/bindings/serial/atmel-usart.txt | |||
@@ -10,13 +10,18 @@ Required properties: | |||
10 | Optional properties: | 10 | Optional properties: |
11 | - atmel,use-dma-rx: use of PDC or DMA for receiving data | 11 | - atmel,use-dma-rx: use of PDC or DMA for receiving data |
12 | - atmel,use-dma-tx: use of PDC or DMA for transmitting data | 12 | - atmel,use-dma-tx: use of PDC or DMA for transmitting data |
13 | - add dma bindings for dma transfer: | ||
14 | - dmas: DMA specifier, consisting of a phandle to DMA controller node, | ||
15 | memory peripheral interface and USART DMA channel ID, FIFO configuration. | ||
16 | Refer to dma.txt and atmel-dma.txt for details. | ||
17 | - dma-names: "rx" for RX channel, "tx" for TX channel. | ||
13 | 18 | ||
14 | <chip> compatible description: | 19 | <chip> compatible description: |
15 | - at91rm9200: legacy USART support | 20 | - at91rm9200: legacy USART support |
16 | - at91sam9260: generic USART implementation for SAM9 SoCs | 21 | - at91sam9260: generic USART implementation for SAM9 SoCs |
17 | 22 | ||
18 | Example: | 23 | Example: |
19 | 24 | - use PDC: | |
20 | usart0: serial@fff8c000 { | 25 | usart0: serial@fff8c000 { |
21 | compatible = "atmel,at91sam9260-usart"; | 26 | compatible = "atmel,at91sam9260-usart"; |
22 | reg = <0xfff8c000 0x4000>; | 27 | reg = <0xfff8c000 0x4000>; |
@@ -25,3 +30,14 @@ Example: | |||
25 | atmel,use-dma-tx; | 30 | atmel,use-dma-tx; |
26 | }; | 31 | }; |
27 | 32 | ||
33 | - use DMA: | ||
34 | usart0: serial@f001c000 { | ||
35 | compatible = "atmel,at91sam9260-usart"; | ||
36 | reg = <0xf001c000 0x100>; | ||
37 | interrupts = <12 4 5>; | ||
38 | atmel,use-dma-rx; | ||
39 | atmel,use-dma-tx; | ||
40 | dmas = <&dma0 2 0x3>, | ||
41 | <&dma0 2 0x204>; | ||
42 | dma-names = "tx", "rx"; | ||
43 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt b/Documentation/devicetree/bindings/serial/efm32-uart.txt index 8e080b893b49..8e080b893b49 100644 --- a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt +++ b/Documentation/devicetree/bindings/serial/efm32-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt index c58573b5b1a4..35ae1fb3537f 100644 --- a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt | |||
@@ -1,35 +1,29 @@ | |||
1 | * Freescale i.MX UART controller | 1 | * Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART) |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "fsl,imx21-uart" | 4 | - compatible : Should be "fsl,<soc>-uart" |
5 | - reg : Address and length of the register set for the device | 5 | - reg : Address and length of the register set for the device |
6 | - interrupts : Should contain UART interrupt number | 6 | - interrupts : Should contain uart interrupt |
7 | 7 | ||
8 | Optional properties: | 8 | Optional properties: |
9 | - fsl,uart-has-rtscts: indicate that RTS/CTS signals are used | 9 | - fsl,uart-has-rtscts : Indicate the uart has rts and cts |
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. | ||
10 | 13 | ||
11 | Note: Each uart controller should have an alias correctly numbered | 14 | Note: Each uart controller should have an alias correctly numbered |
12 | in "aliases" node. | 15 | in "aliases" node. |
13 | 16 | ||
14 | Example: | 17 | Example: |
15 | 18 | ||
16 | - From imx51.dtsi: | ||
17 | aliases { | 19 | aliases { |
18 | serial0 = &uart1; | 20 | serial0 = &uart1; |
19 | serial1 = &uart2; | ||
20 | serial2 = &uart3; | ||
21 | }; | 21 | }; |
22 | 22 | ||
23 | uart1: serial@73fbc000 { | 23 | uart1: serial@73fbc000 { |
24 | compatible = "fsl,imx51-uart", "fsl,imx21-uart"; | 24 | compatible = "fsl,imx51-uart", "fsl,imx21-uart"; |
25 | reg = <0x73fbc000 0x4000>; | 25 | reg = <0x73fbc000 0x4000>; |
26 | interrupts = <31>; | 26 | interrupts = <31>; |
27 | status = "disabled"; | ||
28 | } | ||
29 | |||
30 | - From imx51-babbage.dts: | ||
31 | uart1: serial@73fbc000 { | ||
32 | fsl,uart-has-rtscts; | 27 | fsl,uart-has-rtscts; |
33 | status = "okay"; | 28 | fsl,dte-mode; |
34 | }; | 29 | }; |
35 | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt index 6fd1dd1638dd..6fd1dd1638dd 100644 --- a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt index 2c00ec64628e..59a40f18d551 100644 --- a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt | |||
@@ -10,6 +10,10 @@ Required properties: | |||
10 | Refer to dma.txt and fsl-mxs-dma.txt for details. | 10 | Refer to dma.txt and fsl-mxs-dma.txt for details. |
11 | - dma-names: "rx" for RX channel, "tx" for TX channel. | 11 | - dma-names: "rx" for RX channel, "tx" for TX channel. |
12 | 12 | ||
13 | Optional properties: | ||
14 | - fsl,uart-has-rtscts : Indicate the UART has RTS and CTS lines, | ||
15 | it also means you enable the DMA support for this UART. | ||
16 | |||
13 | Example: | 17 | Example: |
14 | auart0: serial@8006a000 { | 18 | auart0: serial@8006a000 { |
15 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 19 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
diff --git a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt b/Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt index 0d439dfc1aa5..0d439dfc1aa5 100644 --- a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt +++ b/Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/serial/of-serial.txt index 1928a3e83cd0..1928a3e83cd0 100644 --- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt +++ b/Documentation/devicetree/bindings/serial/of-serial.txt | |||
diff --git a/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt b/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt new file mode 100644 index 000000000000..ce8c90161959 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | * MSM Serial UART | ||
2 | |||
3 | The MSM serial UART hardware is designed for low-speed use cases where a | ||
4 | dma-engine isn't needed. From a software perspective it's mostly compatible | ||
5 | with the MSM serial UARTDM except that it only supports reading and writing one | ||
6 | character at a time. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: Should contain "qcom,msm-uart" | ||
10 | - reg: Should contain UART register location and length. | ||
11 | - interrupts: Should contain UART interrupt. | ||
12 | - clocks: Should contain the core clock. | ||
13 | - clock-names: Should be "core". | ||
14 | |||
15 | Example: | ||
16 | |||
17 | A uart device at 0xa9c00000 with interrupt 11. | ||
18 | |||
19 | serial@a9c00000 { | ||
20 | compatible = "qcom,msm-uart"; | ||
21 | reg = <0xa9c00000 0x1000>; | ||
22 | interrupts = <11>; | ||
23 | clocks = <&uart_cxc>; | ||
24 | clock-names = "core"; | ||
25 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt b/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt new file mode 100644 index 000000000000..ffa5b784c66e --- /dev/null +++ b/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | * MSM Serial UARTDM | ||
2 | |||
3 | The MSM serial UARTDM hardware is designed for high-speed use cases where the | ||
4 | transmit and/or receive channels can be offloaded to a dma-engine. From a | ||
5 | software perspective it's mostly compatible with the MSM serial UART except | ||
6 | that it supports reading and writing multiple characters at a time. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: Should contain at least "qcom,msm-uartdm". | ||
10 | A more specific property should be specified as follows depending | ||
11 | on the version: | ||
12 | "qcom,msm-uartdm-v1.1" | ||
13 | "qcom,msm-uartdm-v1.2" | ||
14 | "qcom,msm-uartdm-v1.3" | ||
15 | "qcom,msm-uartdm-v1.4" | ||
16 | - reg: Should contain UART register locations and lengths. The first | ||
17 | register shall specify the main control registers. An optional second | ||
18 | register location shall specify the GSBI control region. | ||
19 | "qcom,msm-uartdm-v1.3" is the only compatible value that might | ||
20 | need the GSBI control region. | ||
21 | - interrupts: Should contain UART interrupt. | ||
22 | - clocks: Should contain the core clock and the AHB clock. | ||
23 | - clock-names: Should be "core" for the core clock and "iface" for the | ||
24 | AHB clock. | ||
25 | |||
26 | Optional properties: | ||
27 | - dmas: Should contain dma specifiers for transmit and receive channels | ||
28 | - dma-names: Should contain "tx" for transmit and "rx" for receive channels | ||
29 | |||
30 | Examples: | ||
31 | |||
32 | A uartdm v1.4 device with dma capabilities. | ||
33 | |||
34 | serial@f991e000 { | ||
35 | compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | ||
36 | reg = <0xf991e000 0x1000>; | ||
37 | interrupts = <0 108 0x0>; | ||
38 | clocks = <&blsp1_uart2_apps_cxc>, <&blsp1_ahb_cxc>; | ||
39 | clock-names = "core", "iface"; | ||
40 | dmas = <&dma0 0>, <&dma0 1>; | ||
41 | dma-names = "tx", "rx"; | ||
42 | }; | ||
43 | |||
44 | A uartdm v1.3 device without dma capabilities and part of a GSBI complex. | ||
45 | |||
46 | serial@19c40000 { | ||
47 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | ||
48 | reg = <0x19c40000 0x1000>, | ||
49 | <0x19c00000 0x1000>; | ||
50 | interrupts = <0 195 0x0>; | ||
51 | clocks = <&gsbi5_uart_cxc>, <&gsbi5_ahb_cxc>; | ||
52 | clock-names = "core", "iface"; | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/rs485.txt b/Documentation/devicetree/bindings/serial/rs485.txt index 1e753c69fc83..32b1fa1f2a5b 100644 --- a/Documentation/devicetree/bindings/serial/rs485.txt +++ b/Documentation/devicetree/bindings/serial/rs485.txt | |||
@@ -7,7 +7,7 @@ UART node. | |||
7 | 7 | ||
8 | Required properties: | 8 | Required properties: |
9 | - rs485-rts-delay: prop-encoded-array <a b> where: | 9 | - rs485-rts-delay: prop-encoded-array <a b> where: |
10 | * a is the delay beteween rts signal and beginning of data sent in milliseconds. | 10 | * a is the delay between rts signal and beginning of data sent in milliseconds. |
11 | it corresponds to the delay before sending data. | 11 | it corresponds to the delay before sending data. |
12 | * b is the delay between end of data sent and rts signal in milliseconds | 12 | * b is the delay between end of data sent and rts signal in milliseconds |
13 | it corresponds to the delay after sending data and actual release of the line. | 13 | it corresponds to the delay after sending data and actual release of the line. |
diff --git a/Documentation/devicetree/bindings/serial/sirf-uart.txt b/Documentation/devicetree/bindings/serial/sirf-uart.txt new file mode 100644 index 000000000000..a2dfc6522a91 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/sirf-uart.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | * CSR SiRFprimaII/atlasVI Universal Synchronous Asynchronous Receiver/Transmitter * | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "sirf,prima2-uart" or "sirf, prima2-usp-uart" | ||
5 | - reg : Offset and length of the register set for the device | ||
6 | - interrupts : Should contain uart interrupt | ||
7 | - fifosize : Should define hardware rx/tx fifo size | ||
8 | - clocks : Should contain uart clock number | ||
9 | |||
10 | Optional properties: | ||
11 | - sirf,uart-has-rtscts: we have hardware flow controller pins in hardware | ||
12 | - rts-gpios: RTS pin for USP-based UART if sirf,uart-has-rtscts is true | ||
13 | - cts-gpios: CTS pin for USP-based UART if sirf,uart-has-rtscts is true | ||
14 | |||
15 | Example: | ||
16 | |||
17 | uart0: uart@b0050000 { | ||
18 | cell-index = <0>; | ||
19 | compatible = "sirf,prima2-uart"; | ||
20 | reg = <0xb0050000 0x1000>; | ||
21 | interrupts = <17>; | ||
22 | fifosize = <128>; | ||
23 | clocks = <&clks 13>; | ||
24 | }; | ||
25 | |||
26 | On the board-specific dts, we can put rts-gpios and cts-gpios like | ||
27 | |||
28 | usp@b0090000 { | ||
29 | compatible = "sirf,prima2-usp-uart"; | ||
30 | sirf,uart-has-rtscts; | ||
31 | rts-gpios = <&gpio 15 0>; | ||
32 | cts-gpios = <&gpio 46 0>; | ||
33 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt index f13f1c5be91c..f13f1c5be91c 100644 --- a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt +++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/serial/st-asc.txt b/Documentation/devicetree/bindings/serial/st-asc.txt new file mode 100644 index 000000000000..75d877f5968f --- /dev/null +++ b/Documentation/devicetree/bindings/serial/st-asc.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | *st-asc(Serial Port) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "st,asc". | ||
5 | - reg, reg-names, interrupts, interrupt-names : Standard way to define device | ||
6 | resources with names. look in | ||
7 | Documentation/devicetree/bindings/resource-names.txt | ||
8 | |||
9 | Optional properties: | ||
10 | - st,hw-flow-ctrl bool flag to enable hardware flow control. | ||
11 | - st,force-m1 bool flat to force asc to be in Mode-1 recommeded | ||
12 | for high bit rates (above 19.2K) | ||
13 | Example: | ||
14 | serial@fe440000{ | ||
15 | compatible = "st,asc"; | ||
16 | reg = <0xfe440000 0x2c>; | ||
17 | interrupts = <0 209 0>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt index 5feef1ef167d..5feef1ef167d 100644 --- a/Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt +++ b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt | |||
diff --git a/Documentation/devicetree/bindings/serio/altera_ps2.txt b/Documentation/devicetree/bindings/serio/altera_ps2.txt index 4d9eecc2ef7d..520199e2e347 100644 --- a/Documentation/devicetree/bindings/serio/altera_ps2.txt +++ b/Documentation/devicetree/bindings/serio/altera_ps2.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | Altera UP PS/2 controller | 1 | Altera UP PS/2 controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,ps2-1.0". | 4 | - compatible : should be "ALTR,ps2-1.0". <DEPRECATED> |
5 | - compatible : should be "altr,ps2-1.0". | ||
diff --git a/Documentation/devicetree/bindings/spi/efm32-spi.txt b/Documentation/devicetree/bindings/spi/efm32-spi.txt new file mode 100644 index 000000000000..a590ca51be75 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/efm32-spi.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | * Energy Micro EFM32 SPI | ||
2 | |||
3 | Required properties: | ||
4 | - #address-cells: see spi-bus.txt | ||
5 | - #size-cells: see spi-bus.txt | ||
6 | - compatible: should be "efm32,spi" | ||
7 | - reg: Offset and length of the register set for the controller | ||
8 | - interrupts: pair specifying rx and tx irq | ||
9 | - clocks: phandle to the spi clock | ||
10 | - cs-gpios: see spi-bus.txt | ||
11 | - location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. | ||
12 | |||
13 | Example: | ||
14 | |||
15 | spi1: spi@0x4000c400 { /* USART1 */ | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <0>; | ||
18 | compatible = "efm32,spi"; | ||
19 | reg = <0x4000c400 0x400>; | ||
20 | interrupts = <15 16>; | ||
21 | clocks = <&cmu 20>; | ||
22 | cs-gpios = <&gpio 51 1>; // D3 | ||
23 | location = <1>; | ||
24 | status = "ok"; | ||
25 | |||
26 | ks8851@0 { | ||
27 | compatible = "ks8851"; | ||
28 | spi-max-frequency = <6000000>; | ||
29 | reg = <0>; | ||
30 | interrupt-parent = <&boardfpga>; | ||
31 | interrupts = <4>; | ||
32 | status = "ok"; | ||
33 | }; | ||
34 | }; | ||
diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt index 296015e3c632..800dafe5b01b 100644 --- a/Documentation/devicetree/bindings/spi/spi-bus.txt +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt | |||
@@ -55,6 +55,16 @@ contain the following properties. | |||
55 | chip select active high | 55 | chip select active high |
56 | - spi-3wire - (optional) Empty property indicating device requires | 56 | - spi-3wire - (optional) Empty property indicating device requires |
57 | 3-wire mode. | 57 | 3-wire mode. |
58 | - spi-tx-bus-width - (optional) The bus width(number of data wires) that | ||
59 | used for MOSI. Defaults to 1 if not present. | ||
60 | - spi-rx-bus-width - (optional) The bus width(number of data wires) that | ||
61 | used for MISO. Defaults to 1 if not present. | ||
62 | |||
63 | Some SPI controllers and devices support Dual and Quad SPI transfer mode. | ||
64 | It allows data in SPI system transfered in 2 wires(DUAL) or 4 wires(QUAD). | ||
65 | Now the value that spi-tx-bus-width and spi-rx-bus-width can receive is | ||
66 | only 1(SINGLE), 2(DUAL) and 4(QUAD). | ||
67 | Dual/Quad mode is not allowed when 3-wire mode is used. | ||
58 | 68 | ||
59 | If a gpio chipselect is used for the SPI slave the gpio number will be passed | 69 | If a gpio chipselect is used for the SPI slave the gpio number will be passed |
60 | via the cs_gpio | 70 | via the cs_gpio |
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt new file mode 100644 index 000000000000..a1fb3035a42b --- /dev/null +++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt | |||
@@ -0,0 +1,42 @@ | |||
1 | ARM Freescale DSPI controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "fsl,vf610-dspi" | ||
5 | - reg : Offset and length of the register set for the device | ||
6 | - interrupts : Should contain SPI controller interrupt | ||
7 | - clocks: from common clock binding: handle to dspi clock. | ||
8 | - clock-names: from common clock binding: Shall be "dspi". | ||
9 | - pinctrl-0: pin control group to be used for this controller. | ||
10 | - pinctrl-names: must contain a "default" entry. | ||
11 | - spi-num-chipselects : the number of the chipselect signals. | ||
12 | - bus-num : the slave chip chipselect signal number. | ||
13 | Example: | ||
14 | |||
15 | dspi0@4002c000 { | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <0>; | ||
18 | compatible = "fsl,vf610-dspi"; | ||
19 | reg = <0x4002c000 0x1000>; | ||
20 | interrupts = <0 67 0x04>; | ||
21 | clocks = <&clks VF610_CLK_DSPI0>; | ||
22 | clock-names = "dspi"; | ||
23 | spi-num-chipselects = <5>; | ||
24 | bus-num = <0>; | ||
25 | pinctrl-names = "default"; | ||
26 | pinctrl-0 = <&pinctrl_dspi0_1>; | ||
27 | status = "okay"; | ||
28 | |||
29 | sflash: at26df081a@0 { | ||
30 | #address-cells = <1>; | ||
31 | #size-cells = <1>; | ||
32 | compatible = "atmel,at26df081a"; | ||
33 | spi-max-frequency = <16000000>; | ||
34 | spi-cpol; | ||
35 | spi-cpha; | ||
36 | reg = <0>; | ||
37 | linux,modalias = "m25p80"; | ||
38 | modal = "at26df081a"; | ||
39 | }; | ||
40 | }; | ||
41 | |||
42 | |||
diff --git a/Documentation/devicetree/bindings/spi/spi_altera.txt b/Documentation/devicetree/bindings/spi/spi_altera.txt index dda375943506..31319dcf30ab 100644 --- a/Documentation/devicetree/bindings/spi/spi_altera.txt +++ b/Documentation/devicetree/bindings/spi/spi_altera.txt | |||
@@ -1,4 +1,5 @@ | |||
1 | Altera SPI | 1 | Altera SPI |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "ALTR,spi-1.0". | 4 | - compatible : should be "ALTR,spi-1.0". <DEPRECATED> |
5 | - compatible : should be "altr,spi-1.0". | ||
diff --git a/Documentation/devicetree/bindings/spi/ti_qspi.txt b/Documentation/devicetree/bindings/spi/ti_qspi.txt new file mode 100644 index 000000000000..1f9641ade0b5 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/ti_qspi.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | TI QSPI controller. | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be "ti,dra7xxx-qspi" or "ti,am4372-qspi". | ||
5 | - reg: Should contain QSPI registers location and length. | ||
6 | - #address-cells, #size-cells : Must be present if the device has sub-nodes | ||
7 | - ti,hwmods: Name of the hwmod associated to the QSPI | ||
8 | |||
9 | Recommended properties: | ||
10 | - spi-max-frequency: Definition as per | ||
11 | Documentation/devicetree/bindings/spi/spi-bus.txt | ||
12 | |||
13 | Example: | ||
14 | |||
15 | qspi: qspi@4b300000 { | ||
16 | compatible = "ti,dra7xxx-qspi"; | ||
17 | reg = <0x4b300000 0x100>; | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <0>; | ||
20 | spi-max-frequency = <25000000>; | ||
21 | ti,hwmods = "qspi"; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/thermal/exynos-thermal.txt b/Documentation/devicetree/bindings/thermal/exynos-thermal.txt new file mode 100644 index 000000000000..284f5300fd8b --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/exynos-thermal.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | * Exynos Thermal Management Unit (TMU) | ||
2 | |||
3 | ** Required properties: | ||
4 | |||
5 | - compatible : One of the following: | ||
6 | "samsung,exynos4412-tmu" | ||
7 | "samsung,exynos4210-tmu" | ||
8 | "samsung,exynos5250-tmu" | ||
9 | "samsung,exynos5440-tmu" | ||
10 | - interrupt-parent : The phandle for the interrupt controller | ||
11 | - reg : Address range of the thermal registers. For soc's which has multiple | ||
12 | instances of TMU and some registers are shared across all TMU's like | ||
13 | interrupt related then 2 set of register has to supplied. First set | ||
14 | belongs to each instance of TMU and second set belongs to common TMU | ||
15 | registers. | ||
16 | - interrupts : Should contain interrupt for thermal system | ||
17 | - clocks : The main clock for TMU device | ||
18 | - clock-names : Thermal system clock name | ||
19 | - vtmu-supply: This entry is optional and provides the regulator node supplying | ||
20 | voltage to TMU. If needed this entry can be placed inside | ||
21 | board/platform specific dts file. | ||
22 | |||
23 | Example 1): | ||
24 | |||
25 | tmu@100C0000 { | ||
26 | compatible = "samsung,exynos4412-tmu"; | ||
27 | interrupt-parent = <&combiner>; | ||
28 | reg = <0x100C0000 0x100>; | ||
29 | interrupts = <2 4>; | ||
30 | clocks = <&clock 383>; | ||
31 | clock-names = "tmu_apbif"; | ||
32 | status = "disabled"; | ||
33 | vtmu-supply = <&tmu_regulator_node>; | ||
34 | }; | ||
35 | |||
36 | Example 2): | ||
37 | |||
38 | tmuctrl_0: tmuctrl@160118 { | ||
39 | compatible = "samsung,exynos5440-tmu"; | ||
40 | reg = <0x160118 0x230>, <0x160368 0x10>; | ||
41 | interrupts = <0 58 0>; | ||
42 | clocks = <&clock 21>; | ||
43 | clock-names = "tmu_apbif"; | ||
44 | }; | ||
45 | |||
46 | Note: For multi-instance tmu each instance should have an alias correctly | ||
47 | numbered in "aliases" node. | ||
48 | |||
49 | Example: | ||
50 | |||
51 | aliases { | ||
52 | tmuctrl0 = &tmuctrl_0; | ||
53 | tmuctrl1 = &tmuctrl_1; | ||
54 | tmuctrl2 = &tmuctrl_2; | ||
55 | }; | ||
diff --git a/Documentation/devicetree/bindings/thermal/imx-thermal.txt b/Documentation/devicetree/bindings/thermal/imx-thermal.txt new file mode 100644 index 000000000000..541c25e49abf --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/imx-thermal.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | * Temperature Monitor (TEMPMON) on Freescale i.MX SoCs | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "fsl,imx6q-thermal" | ||
5 | - fsl,tempmon : phandle pointer to system controller that contains TEMPMON | ||
6 | control registers, e.g. ANATOP on imx6q. | ||
7 | - fsl,tempmon-data : phandle pointer to fuse controller that contains TEMPMON | ||
8 | calibration data, e.g. OCOTP on imx6q. The details about calibration data | ||
9 | can be found in SoC Reference Manual. | ||
10 | |||
11 | Example: | ||
12 | |||
13 | tempmon { | ||
14 | compatible = "fsl,imx6q-tempmon"; | ||
15 | fsl,tempmon = <&anatop>; | ||
16 | fsl,tempmon-data = <&ocotp>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt b/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt new file mode 100644 index 000000000000..da2d510cae47 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | MOXA ART timer | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Must be "moxa,moxart-timer" | ||
6 | - reg : Should contain registers location and length | ||
7 | - interrupts : Should contain the timer interrupt number | ||
8 | - clocks : Should contain phandle for the clock that drives the counter | ||
9 | |||
10 | Example: | ||
11 | |||
12 | timer: timer@98400000 { | ||
13 | compatible = "moxa,moxart-timer"; | ||
14 | reg = <0x98400000 0x42>; | ||
15 | interrupts = <19 1>; | ||
16 | clocks = <&coreclk>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt deleted file mode 100644 index c662eb36be29..000000000000 --- a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | * Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "fsl,<soc>-uart" | ||
5 | - reg : Address and length of the register set for the device | ||
6 | - interrupts : Should contain uart interrupt | ||
7 | |||
8 | Optional properties: | ||
9 | - fsl,uart-has-rtscts : Indicate the uart has rts and cts | ||
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. | ||
13 | |||
14 | Example: | ||
15 | |||
16 | serial@73fbc000 { | ||
17 | compatible = "fsl,imx51-uart", "fsl,imx21-uart"; | ||
18 | reg = <0x73fbc000 0x4000>; | ||
19 | interrupts = <31>; | ||
20 | fsl,uart-has-rtscts; | ||
21 | fsl,dte-mode; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt b/Documentation/devicetree/bindings/tty/serial/msm_serial.txt deleted file mode 100644 index aef383eb8876..000000000000 --- a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | * Qualcomm MSM UART | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : | ||
5 | - "qcom,msm-uart", and one of "qcom,msm-hsuart" or | ||
6 | "qcom,msm-lsuart". | ||
7 | - reg : offset and length of the register set for the device | ||
8 | for the hsuart operating in compatible mode, there should be a | ||
9 | second pair describing the gsbi registers. | ||
10 | - interrupts : should contain the uart interrupt. | ||
11 | |||
12 | There are two different UART blocks used in MSM devices, | ||
13 | "qcom,msm-hsuart" and "qcom,msm-lsuart". The msm-serial driver is | ||
14 | able to handle both of these, and matches against the "qcom,msm-uart" | ||
15 | as the compatibility. | ||
16 | |||
17 | The registers for the "qcom,msm-hsuart" device need to specify both | ||
18 | register blocks, even for the common driver. | ||
19 | |||
20 | Example: | ||
21 | |||
22 | uart@19c400000 { | ||
23 | compatible = "qcom,msm-hsuart", "qcom,msm-uart"; | ||
24 | reg = <0x19c40000 0x1000>, | ||
25 | <0x19c00000 0x1000>; | ||
26 | interrupts = <195>; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt b/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt new file mode 100644 index 000000000000..c5e032c85bf9 --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt | |||
@@ -0,0 +1,34 @@ | |||
1 | * Qualcomm Atheros AR9330 High-Speed UART | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: Must be "qca,ar9330-uart" | ||
6 | |||
7 | - reg: Specifies the physical base address of the controller and | ||
8 | the length of the memory mapped region. | ||
9 | |||
10 | - interrupt-parent: The phandle for the interrupt controller that | ||
11 | services interrupts for this device. | ||
12 | |||
13 | - interrupts: Specifies the interrupt source of the parent interrupt | ||
14 | controller. The format of the interrupt specifier depends on the | ||
15 | parent interrupt controller. | ||
16 | |||
17 | Additional requirements: | ||
18 | |||
19 | Each UART port must have an alias correctly numbered in "aliases" | ||
20 | node. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | aliases { | ||
25 | serial0 = &uart0; | ||
26 | }; | ||
27 | |||
28 | uart0: uart@18020000 { | ||
29 | compatible = "qca,ar9330-uart"; | ||
30 | reg = <0x18020000 0x14>; | ||
31 | |||
32 | interrupt-parent = <&intc>; | ||
33 | interrupts = <3>; | ||
34 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt index dc9dc8c87f15..20c2ff2ba07e 100644 --- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt +++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt | |||
@@ -1,35 +1,197 @@ | |||
1 | AM33XX MUSB GLUE | 1 | AM33xx MUSB |
2 | - compatible : Should be "ti,musb-am33xx" | 2 | ~~~~~~~~~~~~~~~ |
3 | - reg : offset and length of register sets, first usbss, then for musb instances | 3 | - compatible: ti,am33xx-usb |
4 | - interrupts : usbss, musb instance interrupts in order | 4 | - reg: offset and length of the usbss register sets |
5 | - ti,hwmods : must be "usb_otg_hs" | 5 | - ti,hwmods : must be "usb_otg_hs" |
6 | - multipoint : Should be "1" indicating the musb controller supports | 6 | |
7 | multipoint. This is a MUSB configuration-specific setting. | 7 | The glue layer contains multiple child nodes. It is required the have |
8 | - num-eps : Specifies the number of endpoints. This is also a | 8 | at least a control module node, USB node and a PHY node. The second USB |
9 | MUSB configuration-specific setting. Should be set to "16" | 9 | node and its PHY node is optional. The DMA node is also optional. |
10 | - ram-bits : Specifies the ram address size. Should be set to "12" | 10 | |
11 | - port0-mode : Should be "3" to represent OTG. "1" signifies HOST and "2" | 11 | Reset module |
12 | represents PERIPHERAL. | 12 | ~~~~~~~~~~~~ |
13 | - port1-mode : Should be "1" to represent HOST. "3" signifies OTG and "2" | 13 | - compatible: ti,am335x-usb-ctrl-module |
14 | represents PERIPHERAL. | 14 | - reg: offset and length of the "USB control registers" in the "Control |
15 | - power : Should be "250". This signifies the controller can supply up to | 15 | Module" block. A second offset and length for the USB wake up control |
16 | 500mA when operating in host mode. | 16 | in the same memory block. |
17 | - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for | ||
18 | the USB wake up control register. | ||
19 | |||
20 | USB PHY | ||
21 | ~~~~~~~ | ||
22 | compatible: ti,am335x-usb-phy | ||
23 | reg: offset and length of the "USB PHY" register space | ||
24 | ti,ctrl_mod: reference to the "reset module" node | ||
25 | reg-names: phy | ||
26 | The PHY should have a "phy" alias numbered properly in the alias | ||
27 | node. | ||
28 | |||
29 | USB | ||
30 | ~~~ | ||
31 | - compatible: ti,musb-am33xx | ||
32 | - reg: offset and length of "USB Controller Registers", and offset and | ||
33 | length of "USB Core" register space. | ||
34 | - reg-names: control for the ""USB Controller Registers" and "mc" for | ||
35 | "USB Core" register space | ||
36 | - interrupts: USB interrupt number | ||
37 | - interrupt-names: mc | ||
38 | - dr_mode: Should be one of "host", "peripheral" or "otg". | ||
39 | - mentor,multipoint: Should be "1" indicating the musb controller supports | ||
40 | multipoint. This is a MUSB configuration-specific setting. | ||
41 | - mentor,num-eps: Specifies the number of endpoints. This is also a | ||
42 | MUSB configuration-specific setting. Should be set to "16" | ||
43 | - mentor,ram-bits: Specifies the ram address size. Should be set to "12" | ||
44 | - mentor,power: Should be "500". This signifies the controller can supply up to | ||
45 | 500mA when operating in host mode. | ||
46 | - phys: reference to the USB phy | ||
47 | - dmas: specifies the dma channels | ||
48 | - dma-names: specifies the names of the channels. Use "rxN" for receive | ||
49 | and "txN" for transmit endpoints. N specifies the endpoint number. | ||
50 | |||
51 | The controller should have an "usb" alias numbered properly in the alias | ||
52 | node. | ||
53 | |||
54 | DMA | ||
55 | ~~~ | ||
56 | - compatible: ti,am3359-cppi41 | ||
57 | - reg: offset and length of the following register spaces: USBSS, USB | ||
58 | CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager | ||
59 | - reg-names: glue, controller, scheduler, queuemgr | ||
60 | - #dma-cells: should be set to 2. The first number represents the | ||
61 | endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29 | ||
62 | for endpoints 1 … 15 on instance 1). The second number is 0 for RX and | ||
63 | 1 for TX transfers. | ||
64 | - #dma-channels: should be set to 30 representing the 15 endpoints for | ||
65 | each USB instance. | ||
17 | 66 | ||
18 | Example: | 67 | Example: |
68 | ~~~~~~~~ | ||
69 | The following example contains all the nodes as used on am335x-evm: | ||
70 | |||
71 | aliases { | ||
72 | usb0 = &usb0; | ||
73 | usb1 = &usb1; | ||
74 | phy0 = &usb0_phy; | ||
75 | phy1 = &usb1_phy; | ||
76 | }; | ||
19 | 77 | ||
20 | usb@47400000 { | 78 | usb: usb@47400000 { |
21 | compatible = "ti,musb-am33xx"; | 79 | compatible = "ti,am33xx-usb"; |
22 | reg = <0x47400000 0x1000 /* usbss */ | 80 | reg = <0x47400000 0x1000>; |
23 | 0x47401000 0x800 /* musb instance 0 */ | 81 | ranges; |
24 | 0x47401800 0x800>; /* musb instance 1 */ | 82 | #address-cells = <1>; |
25 | interrupts = <17 /* usbss */ | 83 | #size-cells = <1>; |
26 | 18 /* musb instance 0 */ | ||
27 | 19>; /* musb instance 1 */ | ||
28 | multipoint = <1>; | ||
29 | num-eps = <16>; | ||
30 | ram-bits = <12>; | ||
31 | port0-mode = <3>; | ||
32 | port1-mode = <3>; | ||
33 | power = <250>; | ||
34 | ti,hwmods = "usb_otg_hs"; | 84 | ti,hwmods = "usb_otg_hs"; |
85 | |||
86 | ctrl_mod: control@44e10000 { | ||
87 | compatible = "ti,am335x-usb-ctrl-module"; | ||
88 | reg = <0x44e10620 0x10 | ||
89 | 0x44e10648 0x4>; | ||
90 | reg-names = "phy_ctrl", "wakeup"; | ||
91 | }; | ||
92 | |||
93 | usb0_phy: usb-phy@47401300 { | ||
94 | compatible = "ti,am335x-usb-phy"; | ||
95 | reg = <0x47401300 0x100>; | ||
96 | reg-names = "phy"; | ||
97 | ti,ctrl_mod = <&ctrl_mod>; | ||
98 | }; | ||
99 | |||
100 | usb0: usb@47401000 { | ||
101 | compatible = "ti,musb-am33xx"; | ||
102 | reg = <0x47401400 0x400 | ||
103 | 0x47401000 0x200>; | ||
104 | reg-names = "mc", "control"; | ||
105 | |||
106 | interrupts = <18>; | ||
107 | interrupt-names = "mc"; | ||
108 | dr_mode = "otg" | ||
109 | mentor,multipoint = <1>; | ||
110 | mentor,num-eps = <16>; | ||
111 | mentor,ram-bits = <12>; | ||
112 | mentor,power = <500>; | ||
113 | phys = <&usb0_phy>; | ||
114 | |||
115 | dmas = <&cppi41dma 0 0 &cppi41dma 1 0 | ||
116 | &cppi41dma 2 0 &cppi41dma 3 0 | ||
117 | &cppi41dma 4 0 &cppi41dma 5 0 | ||
118 | &cppi41dma 6 0 &cppi41dma 7 0 | ||
119 | &cppi41dma 8 0 &cppi41dma 9 0 | ||
120 | &cppi41dma 10 0 &cppi41dma 11 0 | ||
121 | &cppi41dma 12 0 &cppi41dma 13 0 | ||
122 | &cppi41dma 14 0 &cppi41dma 0 1 | ||
123 | &cppi41dma 1 1 &cppi41dma 2 1 | ||
124 | &cppi41dma 3 1 &cppi41dma 4 1 | ||
125 | &cppi41dma 5 1 &cppi41dma 6 1 | ||
126 | &cppi41dma 7 1 &cppi41dma 8 1 | ||
127 | &cppi41dma 9 1 &cppi41dma 10 1 | ||
128 | &cppi41dma 11 1 &cppi41dma 12 1 | ||
129 | &cppi41dma 13 1 &cppi41dma 14 1>; | ||
130 | dma-names = | ||
131 | "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", | ||
132 | "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", | ||
133 | "rx14", "rx15", | ||
134 | "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", | ||
135 | "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", | ||
136 | "tx14", "tx15"; | ||
137 | }; | ||
138 | |||
139 | usb1_phy: usb-phy@47401b00 { | ||
140 | compatible = "ti,am335x-usb-phy"; | ||
141 | reg = <0x47401b00 0x100>; | ||
142 | reg-names = "phy"; | ||
143 | ti,ctrl_mod = <&ctrl_mod>; | ||
144 | }; | ||
145 | |||
146 | usb1: usb@47401800 { | ||
147 | compatible = "ti,musb-am33xx"; | ||
148 | reg = <0x47401c00 0x400 | ||
149 | 0x47401800 0x200>; | ||
150 | reg-names = "mc", "control"; | ||
151 | interrupts = <19>; | ||
152 | interrupt-names = "mc"; | ||
153 | dr_mode = "host" | ||
154 | mentor,multipoint = <1>; | ||
155 | mentor,num-eps = <16>; | ||
156 | mentor,ram-bits = <12>; | ||
157 | mentor,power = <500>; | ||
158 | phys = <&usb1_phy>; | ||
159 | |||
160 | dmas = <&cppi41dma 15 0 &cppi41dma 16 0 | ||
161 | &cppi41dma 17 0 &cppi41dma 18 0 | ||
162 | &cppi41dma 19 0 &cppi41dma 20 0 | ||
163 | &cppi41dma 21 0 &cppi41dma 22 0 | ||
164 | &cppi41dma 23 0 &cppi41dma 24 0 | ||
165 | &cppi41dma 25 0 &cppi41dma 26 0 | ||
166 | &cppi41dma 27 0 &cppi41dma 28 0 | ||
167 | &cppi41dma 29 0 &cppi41dma 15 1 | ||
168 | &cppi41dma 16 1 &cppi41dma 17 1 | ||
169 | &cppi41dma 18 1 &cppi41dma 19 1 | ||
170 | &cppi41dma 20 1 &cppi41dma 21 1 | ||
171 | &cppi41dma 22 1 &cppi41dma 23 1 | ||
172 | &cppi41dma 24 1 &cppi41dma 25 1 | ||
173 | &cppi41dma 26 1 &cppi41dma 27 1 | ||
174 | &cppi41dma 28 1 &cppi41dma 29 1>; | ||
175 | dma-names = | ||
176 | "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", | ||
177 | "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", | ||
178 | "rx14", "rx15", | ||
179 | "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", | ||
180 | "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", | ||
181 | "tx14", "tx15"; | ||
182 | }; | ||
183 | |||
184 | cppi41dma: dma-controller@07402000 { | ||
185 | compatible = "ti,am3359-cppi41"; | ||
186 | reg = <0x47400000 0x1000 | ||
187 | 0x47402000 0x1000 | ||
188 | 0x47403000 0x1000 | ||
189 | 0x47404000 0x4000>; | ||
190 | reg-names = "glue", "controller", "scheduler", "queuemgr"; | ||
191 | interrupts = <17>; | ||
192 | interrupt-names = "glue"; | ||
193 | #dma-cells = <2>; | ||
194 | #dma-channels = <30>; | ||
195 | #dma-requests = <256>; | ||
196 | }; | ||
35 | }; | 197 | }; |
diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt index 7a95c651ceb3..e807635f9e1c 100644 --- a/Documentation/devicetree/bindings/usb/dwc3.txt +++ b/Documentation/devicetree/bindings/usb/dwc3.txt | |||
@@ -3,10 +3,12 @@ synopsys DWC3 CORE | |||
3 | DWC3- USB3 CONTROLLER | 3 | DWC3- USB3 CONTROLLER |
4 | 4 | ||
5 | Required properties: | 5 | Required properties: |
6 | - compatible: must be "synopsys,dwc3" | 6 | - compatible: must be "snps,dwc3" |
7 | - reg : Address and length of the register set for the device | 7 | - reg : Address and length of the register set for the device |
8 | - interrupts: Interrupts used by the dwc3 controller. | 8 | - interrupts: Interrupts used by the dwc3 controller. |
9 | - usb-phy : array of phandle for the PHY device | 9 | - usb-phy : array of phandle for the PHY device. The first element |
10 | in the array is expected to be a handle to the USB2/HS PHY and | ||
11 | the second element is expected to be a handle to the USB3/SS PHY | ||
10 | 12 | ||
11 | Optional properties: | 13 | Optional properties: |
12 | - tx-fifo-resize: determines if the FIFO *has* to be reallocated. | 14 | - tx-fifo-resize: determines if the FIFO *has* to be reallocated. |
@@ -14,7 +16,7 @@ Optional properties: | |||
14 | This is usually a subnode to DWC3 glue to which it is connected. | 16 | This is usually a subnode to DWC3 glue to which it is connected. |
15 | 17 | ||
16 | dwc3@4a030000 { | 18 | dwc3@4a030000 { |
17 | compatible = "synopsys,dwc3"; | 19 | compatible = "snps,dwc3"; |
18 | reg = <0x4a030000 0xcfff>; | 20 | reg = <0x4a030000 0xcfff>; |
19 | interrupts = <0 92 4> | 21 | interrupts = <0 92 4> |
20 | usb-phy = <&usb2_phy>, <&usb3,phy>; | 22 | usb-phy = <&usb2_phy>, <&usb3,phy>; |
diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt new file mode 100644 index 000000000000..477d5bb5e51c --- /dev/null +++ b/Documentation/devicetree/bindings/usb/generic.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | Generic USB Properties | ||
2 | |||
3 | Optional properties: | ||
4 | - maximum-speed: tells USB controllers we want to work up to a certain | ||
5 | speed. Valid arguments are "super-speed", "high-speed", | ||
6 | "full-speed" and "low-speed". In case this isn't passed | ||
7 | via DT, USB controllers should default to their maximum | ||
8 | HW capability. | ||
9 | - dr_mode: tells Dual-Role USB controllers that we want to work on a | ||
10 | particular mode. Valid arguments are "host", | ||
11 | "peripheral" and "otg". In case this attribute isn't | ||
12 | passed via DT, USB DRD controllers should default to | ||
13 | OTG. | ||
14 | |||
15 | This is an attribute to a USB controller such as: | ||
16 | |||
17 | dwc3@4a030000 { | ||
18 | compatible = "synopsys,dwc3"; | ||
19 | reg = <0x4a030000 0xcfff>; | ||
20 | interrupts = <0 92 4> | ||
21 | usb-phy = <&usb2_phy>, <&usb3,phy>; | ||
22 | maximum-speed = "super-speed"; | ||
23 | dr_mode = "otg"; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt index c4c9e9e664aa..ba797d3e6326 100644 --- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt | |||
@@ -3,7 +3,7 @@ Tegra SOC USB PHY | |||
3 | The device node for Tegra SOC USB PHY: | 3 | The device node for Tegra SOC USB PHY: |
4 | 4 | ||
5 | Required properties : | 5 | Required properties : |
6 | - compatible : Should be "nvidia,tegra20-usb-phy". | 6 | - compatible : Should be "nvidia,tegra<chip>-usb-phy". |
7 | - reg : Defines the following set of registers, in the order listed: | 7 | - reg : Defines the following set of registers, in the order listed: |
8 | - The PHY's own register set. | 8 | - The PHY's own register set. |
9 | Always present. | 9 | Always present. |
@@ -24,17 +24,26 @@ Required properties : | |||
24 | Required properties for phy_type == ulpi: | 24 | Required properties for phy_type == ulpi: |
25 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. | 25 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. |
26 | 26 | ||
27 | Required PHY timing params for utmi phy: | 27 | Required PHY timing params for utmi phy, for all chips: |
28 | - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before | 28 | - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before |
29 | start of sync launches RxActive | 29 | start of sync launches RxActive |
30 | - nvidia,elastic-limit : Variable FIFO Depth of elastic input store | 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 | 31 | - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait |
32 | before declare IDLE. | 32 | before declare IDLE. |
33 | - nvidia,term-range-adj : Range adjusment on terminations | 33 | - nvidia,term-range-adj : Range adjusment on terminations |
34 | - nvidia,xcvr-setup : HS driver output control | 34 | - Either one of the following for HS driver output control: |
35 | - nvidia,xcvr-setup : integer, uses the provided value. | ||
36 | - nvidia,xcvr-setup-use-fuses : boolean, indicates that the value is read | ||
37 | from the on-chip fuses | ||
38 | If both are provided, nvidia,xcvr-setup-use-fuses takes precedence. | ||
35 | - nvidia,xcvr-lsfslew : LS falling slew rate control. | 39 | - nvidia,xcvr-lsfslew : LS falling slew rate control. |
36 | - nvidia,xcvr-lsrslew : LS rising slew rate control. | 40 | - nvidia,xcvr-lsrslew : LS rising slew rate control. |
37 | 41 | ||
42 | Required PHY timing params for utmi phy, only on Tegra30 and above: | ||
43 | - nvidia,xcvr-hsslew : HS slew rate control. | ||
44 | - nvidia,hssquelch-level : HS squelch detector level. | ||
45 | - nvidia,hsdiscon-level : HS disconnect detector level. | ||
46 | |||
38 | Optional properties: | 47 | Optional properties: |
39 | - nvidia,has-legacy-mode : boolean indicates whether this controller can | 48 | - nvidia,has-legacy-mode : boolean indicates whether this controller can |
40 | operate in legacy mode (as APX 2500 / 2600). In legacy mode some | 49 | operate in legacy mode (as APX 2500 / 2600). In legacy mode some |
@@ -48,5 +57,5 @@ Optional properties: | |||
48 | peripheral means it is device controller | 57 | peripheral means it is device controller |
49 | otg means it can operate as either ("on the go") | 58 | otg means it can operate as either ("on the go") |
50 | 59 | ||
51 | Required properties for dr_mode == otg: | 60 | VBUS control (required for dr_mode == otg, optional for dr_mode == host): |
52 | - vbus-supply: regulator for VBUS | 61 | - vbus-supply: regulator for VBUS |
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 57e71f6817d0..9088ab09e200 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt | |||
@@ -53,6 +53,11 @@ OMAP DWC3 GLUE | |||
53 | It should be set to "1" for HW mode and "2" for SW mode. | 53 | It should be set to "1" for HW mode and "2" for SW mode. |
54 | - ranges: the child address space are mapped 1:1 onto the parent address space | 54 | - ranges: the child address space are mapped 1:1 onto the parent address space |
55 | 55 | ||
56 | Optional Properties: | ||
57 | - extcon : phandle for the extcon device omap dwc3 uses to detect | ||
58 | connect/disconnect events. | ||
59 | - vbus-supply : phandle to the regulator device tree node if needed. | ||
60 | |||
56 | Sub-nodes: | 61 | Sub-nodes: |
57 | The dwc3 core should be added as subnode to omap dwc3 glue. | 62 | The dwc3 core should be added as subnode to omap dwc3 glue. |
58 | - dwc3 : | 63 | - dwc3 : |
diff --git a/Documentation/devicetree/bindings/usb/samsung-hsotg.txt b/Documentation/devicetree/bindings/usb/samsung-hsotg.txt new file mode 100644 index 000000000000..b83d428a265e --- /dev/null +++ b/Documentation/devicetree/bindings/usb/samsung-hsotg.txt | |||
@@ -0,0 +1,40 @@ | |||
1 | Samsung High Speed USB OTG controller | ||
2 | ----------------------------- | ||
3 | |||
4 | The Samsung HSOTG IP can be found on Samsung SoCs, from S3C6400 onwards. | ||
5 | It gives functionality of OTG-compliant USB 2.0 host and device with | ||
6 | support for USB 2.0 high-speed (480Mbps) and full-speed (12 Mbps) | ||
7 | operation. | ||
8 | |||
9 | Currently only device mode is supported. | ||
10 | |||
11 | Binding details | ||
12 | ----- | ||
13 | |||
14 | Required properties: | ||
15 | - compatible: "samsung,s3c6400-hsotg" should be used for all currently | ||
16 | supported SoC, | ||
17 | - interrupt-parent: phandle for the interrupt controller to which the | ||
18 | interrupt signal of the HSOTG block is routed, | ||
19 | - interrupts: specifier of interrupt signal of interrupt controller, | ||
20 | according to bindings of interrupt controller, | ||
21 | - clocks: contains an array of clock specifiers: | ||
22 | - first entry: OTG clock | ||
23 | - clock-names: contains array of clock names: | ||
24 | - first entry: must be "otg" | ||
25 | - vusb_d-supply: phandle to voltage regulator of digital section, | ||
26 | - vusb_a-supply: phandle to voltage regulator of analog section. | ||
27 | |||
28 | Example | ||
29 | ----- | ||
30 | |||
31 | hsotg@12480000 { | ||
32 | compatible = "samsung,s3c6400-hsotg"; | ||
33 | reg = <0x12480000 0x20000>; | ||
34 | interrupts = <0 71 0>; | ||
35 | clocks = <&clock 305>; | ||
36 | clock-names = "otg"; | ||
37 | vusb_d-supply = <&vusb_reg>; | ||
38 | vusb_a-supply = <&vusbdac_reg>; | ||
39 | }; | ||
40 | |||
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt new file mode 100644 index 000000000000..5752df0e17a2 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | USB xHCI controllers | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "xhci-platform". | ||
5 | - reg: should contain address and length of the standard XHCI | ||
6 | register set for the device. | ||
7 | - interrupts: one XHCI interrupt should be described here. | ||
8 | |||
9 | Example: | ||
10 | usb@f0931000 { | ||
11 | compatible = "xhci-platform"; | ||
12 | reg = <0xf0931000 0x8c8>; | ||
13 | interrupts = <0x0 0x4e 0x0>; | ||
14 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt index 8c5be48b43c8..a018da4a7ad7 100644 --- a/Documentation/devicetree/bindings/usb/usb3503.txt +++ b/Documentation/devicetree/bindings/usb/usb3503.txt | |||
@@ -1,8 +1,11 @@ | |||
1 | SMSC USB3503 High-Speed Hub Controller | 1 | SMSC USB3503 High-Speed Hub Controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "smsc,usb3503". | 4 | - compatible: Should be "smsc,usb3503" or "smsc,usb3503a". |
5 | - reg: Specifies the i2c slave address, it should be 0x08. | 5 | |
6 | Optional properties: | ||
7 | - reg: Specifies the i2c slave address, it is required and should be 0x08 | ||
8 | if I2C is used. | ||
6 | - connect-gpios: Should specify GPIO for connect. | 9 | - connect-gpios: Should specify GPIO for connect. |
7 | - disabled-ports: Should specify the ports unused. | 10 | - disabled-ports: Should specify the ports unused. |
8 | '1' or '2' or '3' are availe for this property to describe the port | 11 | '1' or '2' or '3' are availe for this property to describe the port |
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 366ce9b87240..2956800f0240 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -7,10 +7,12 @@ ad Avionic Design GmbH | |||
7 | adi Analog Devices, Inc. | 7 | adi Analog Devices, Inc. |
8 | aeroflexgaisler Aeroflex Gaisler AB | 8 | aeroflexgaisler Aeroflex Gaisler AB |
9 | ak Asahi Kasei Corp. | 9 | ak Asahi Kasei Corp. |
10 | altr Altera Corp. | ||
10 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) | 11 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) |
11 | apm Applied Micro Circuits Corporation (APM) | 12 | apm Applied Micro Circuits Corporation (APM) |
12 | arm ARM Ltd. | 13 | arm ARM Ltd. |
13 | atmel Atmel Corporation | 14 | atmel Atmel Corporation |
15 | avago Avago Technologies | ||
14 | bosch Bosch Sensortec GmbH | 16 | bosch Bosch Sensortec GmbH |
15 | brcm Broadcom Corporation | 17 | brcm Broadcom Corporation |
16 | cavium Cavium, Inc. | 18 | cavium Cavium, Inc. |
@@ -36,6 +38,7 @@ linux Linux-specific binding | |||
36 | lsi LSI Corp. (LSI Logic) | 38 | lsi LSI Corp. (LSI Logic) |
37 | marvell Marvell Technology Group Ltd. | 39 | marvell Marvell Technology Group Ltd. |
38 | maxim Maxim Integrated Products | 40 | maxim Maxim Integrated Products |
41 | microchip Microchip Technology Inc. | ||
39 | mosaixtech Mosaix Technologies, Inc. | 42 | mosaixtech Mosaix Technologies, Inc. |
40 | national National Semiconductor | 43 | national National Semiconductor |
41 | nintendo Nintendo | 44 | nintendo Nintendo |
diff --git a/Documentation/devicetree/bindings/video/simple-framebuffer.txt b/Documentation/devicetree/bindings/video/simple-framebuffer.txt index 3ea460583111..70c26f3a5b9a 100644 --- a/Documentation/devicetree/bindings/video/simple-framebuffer.txt +++ b/Documentation/devicetree/bindings/video/simple-framebuffer.txt | |||
@@ -12,6 +12,7 @@ Required properties: | |||
12 | - stride: The number of bytes in each line of the framebuffer. | 12 | - stride: The number of bytes in each line of the framebuffer. |
13 | - format: The format of the framebuffer surface. Valid values are: | 13 | - format: The format of the framebuffer surface. Valid values are: |
14 | - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). | 14 | - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). |
15 | - a8b8g8r8 (32-bit pixels, d[31:24]=a, d[23:16]=b, d[15:8]=g, d[7:0]=r). | ||
15 | 16 | ||
16 | Example: | 17 | Example: |
17 | 18 | ||
diff --git a/Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt index ecd650adff31..e39cb266c8f4 100644 --- a/Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt | |||
@@ -1,8 +1,9 @@ | |||
1 | Allwinner sun4i Watchdog timer | 1 | Allwinner SoCs Watchdog timer |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | 4 | ||
5 | - compatible : should be "allwinner,sun4i-wdt" | 5 | - compatible : should be "allwinner,<soc-family>-wdt", the currently supported |
6 | SoC families being sun4i and sun6i | ||
6 | - reg : Specifies base physical address and size of the registers. | 7 | - reg : Specifies base physical address and size of the registers. |
7 | 8 | ||
8 | Example: | 9 | Example: |