diff options
Diffstat (limited to 'Documentation/devicetree/bindings')
212 files changed, 6549 insertions, 429 deletions
diff --git a/Documentation/devicetree/bindings/ABI.txt b/Documentation/devicetree/bindings/ABI.txt new file mode 100644 index 000000000000..d25f8d379680 --- /dev/null +++ b/Documentation/devicetree/bindings/ABI.txt | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | |||
| 2 | Devicetree (DT) ABI | ||
| 3 | |||
| 4 | I. Regarding stable bindings/ABI, we quote from the 2013 ARM mini-summit | ||
| 5 | summary document: | ||
| 6 | |||
| 7 | "That still leaves the question of, what does a stable binding look | ||
| 8 | like? Certainly a stable binding means that a newer kernel will not | ||
| 9 | break on an older device tree, but that doesn't mean the binding is | ||
| 10 | frozen for all time. Grant said there are ways to change bindings that | ||
| 11 | don't result in breakage. For instance, if a new property is added, | ||
| 12 | then default to the previous behaviour if it is missing. If a binding | ||
| 13 | truly needs an incompatible change, then change the compatible string | ||
| 14 | at the same time. The driver can bind against both the old and the | ||
| 15 | new. These guidelines aren't new, but they desperately need to be | ||
| 16 | documented." | ||
| 17 | |||
| 18 | II. General binding rules | ||
| 19 | |||
| 20 | 1) Maintainers, don't let perfect be the enemy of good. Don't hold up a | ||
| 21 | binding because it isn't perfect. | ||
| 22 | |||
| 23 | 2) Use specific compatible strings so that if we need to add a feature (DMA) | ||
| 24 | in the future, we can create a new compatible string. See I. | ||
| 25 | |||
| 26 | 3) Bindings can be augmented, but the driver shouldn't break when given | ||
| 27 | the old binding. ie. add additional properties, but don't change the | ||
| 28 | meaning of an existing property. For drivers, default to the original | ||
| 29 | behaviour when a newly added property is missing. | ||
| 30 | |||
| 31 | 4) Don't submit bindings for staging or unstable. That will be decided by | ||
| 32 | the devicetree maintainers *after* discussion on the mailinglist. | ||
| 33 | |||
| 34 | III. Notes | ||
| 35 | |||
| 36 | 1) This document is intended as a general familiarization with the process as | ||
| 37 | decided at the 2013 Kernel Summit. When in doubt, the current word of the | ||
| 38 | devicetree maintainers overrules this document. In that situation, a patch | ||
| 39 | updating this document would be appreciated. | ||
diff --git a/Documentation/devicetree/bindings/arm/arm-boards b/Documentation/devicetree/bindings/arm/arm-boards index 5fac246a9530..3509707f9320 100644 --- a/Documentation/devicetree/bindings/arm/arm-boards +++ b/Documentation/devicetree/bindings/arm/arm-boards | |||
| @@ -14,6 +14,9 @@ Required nodes: | |||
| 14 | - core-module: the root node to the Integrator platforms must have | 14 | - core-module: the root node to the Integrator platforms must have |
| 15 | a core-module with regs and the compatible string | 15 | a core-module with regs and the compatible string |
| 16 | "arm,core-module-integrator" | 16 | "arm,core-module-integrator" |
| 17 | - external-bus-interface: the root node to the Integrator platforms | ||
| 18 | must have an external bus interface with regs and the | ||
| 19 | compatible-string "arm,external-bus-interface" | ||
| 17 | 20 | ||
| 18 | Required properties for the core module: | 21 | Required properties for the core module: |
| 19 | - regs: the location and size of the core module registers, one | 22 | - regs: the location and size of the core module registers, one |
| @@ -48,6 +51,11 @@ Required nodes: | |||
| 48 | reg = <0x10000000 0x200>; | 51 | reg = <0x10000000 0x200>; |
| 49 | }; | 52 | }; |
| 50 | 53 | ||
| 54 | ebi@12000000 { | ||
| 55 | compatible = "arm,external-bus-interface"; | ||
| 56 | reg = <0x12000000 0x100>; | ||
| 57 | }; | ||
| 58 | |||
| 51 | syscon { | 59 | syscon { |
| 52 | compatible = "arm,integrator-ap-syscon"; | 60 | compatible = "arm,integrator-ap-syscon"; |
| 53 | reg = <0x11000000 0x100>; | 61 | reg = <0x11000000 0x100>; |
diff --git a/Documentation/devicetree/bindings/arm/atmel-aic.txt b/Documentation/devicetree/bindings/arm/atmel-aic.txt index ad031211b5b8..2742e9cfd6b1 100644 --- a/Documentation/devicetree/bindings/arm/atmel-aic.txt +++ b/Documentation/devicetree/bindings/arm/atmel-aic.txt | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible: Should be "atmel,<chip>-aic" | 4 | - compatible: Should be "atmel,<chip>-aic" |
| 5 | <chip> can be "at91rm9200" or "sama5d3" | ||
| 5 | - interrupt-controller: Identifies the node as an interrupt controller. | 6 | - interrupt-controller: Identifies the node as an interrupt controller. |
| 6 | - interrupt-parent: For single AIC system, it is an empty property. | 7 | - interrupt-parent: For single AIC system, it is an empty property. |
| 7 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. | 8 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. |
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt index 1196290082d1..16f60b41c147 100644 --- a/Documentation/devicetree/bindings/arm/atmel-at91.txt +++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt | |||
| @@ -20,6 +20,10 @@ TC/TCLIB Timer required properties: | |||
| 20 | - interrupts: Should contain all interrupts for the TC block | 20 | - interrupts: Should contain all interrupts for the TC block |
| 21 | Note that you can specify several interrupt cells if the TC | 21 | Note that you can specify several interrupt cells if the TC |
| 22 | block has one interrupt per channel. | 22 | block has one interrupt per channel. |
| 23 | - clock-names: tuple listing input clock names. | ||
| 24 | Required elements: "t0_clk" | ||
| 25 | Optional elements: "t1_clk", "t2_clk" | ||
| 26 | - clocks: phandles to input clocks. | ||
| 23 | 27 | ||
| 24 | Examples: | 28 | Examples: |
| 25 | 29 | ||
| @@ -28,6 +32,8 @@ One interrupt per TC block: | |||
| 28 | compatible = "atmel,at91rm9200-tcb"; | 32 | compatible = "atmel,at91rm9200-tcb"; |
| 29 | reg = <0xfff7c000 0x100>; | 33 | reg = <0xfff7c000 0x100>; |
| 30 | interrupts = <18 4>; | 34 | interrupts = <18 4>; |
| 35 | clocks = <&tcb0_clk>; | ||
| 36 | clock-names = "t0_clk"; | ||
| 31 | }; | 37 | }; |
| 32 | 38 | ||
| 33 | One interrupt per TC channel in a TC block: | 39 | One interrupt per TC channel in a TC block: |
| @@ -35,6 +41,8 @@ One interrupt per TC channel in a TC block: | |||
| 35 | compatible = "atmel,at91rm9200-tcb"; | 41 | compatible = "atmel,at91rm9200-tcb"; |
| 36 | reg = <0xfffdc000 0x100>; | 42 | reg = <0xfffdc000 0x100>; |
| 37 | interrupts = <26 4 27 4 28 4>; | 43 | interrupts = <26 4 27 4 28 4>; |
| 44 | clocks = <&tcb1_clk>; | ||
| 45 | clock-names = "t0_clk"; | ||
| 38 | }; | 46 | }; |
| 39 | 47 | ||
| 40 | RSTC Reset Controller required properties: | 48 | RSTC Reset Controller required properties: |
| @@ -50,7 +58,8 @@ Example: | |||
| 50 | }; | 58 | }; |
| 51 | 59 | ||
| 52 | RAMC SDRAM/DDR Controller required properties: | 60 | RAMC SDRAM/DDR Controller required properties: |
| 53 | - compatible: Should be "atmel,at91sam9260-sdramc", | 61 | - compatible: Should be "atmel,at91rm9200-sdramc", |
| 62 | "atmel,at91sam9260-sdramc", | ||
| 54 | "atmel,at91sam9g45-ddramc", | 63 | "atmel,at91sam9g45-ddramc", |
| 55 | - reg: Should contain registers location and length | 64 | - reg: Should contain registers location and length |
| 56 | For at91sam9263 and at91sam9g45 you must specify 2 entries. | 65 | For at91sam9263 and at91sam9g45 you must specify 2 entries. |
diff --git a/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt index 17d88b233d1b..39adf54b4388 100644 --- a/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt +++ b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt | |||
| @@ -8,13 +8,18 @@ Required properties: | |||
| 8 | - DEPRECATED: compatible : "bcm,kona-timer" | 8 | - DEPRECATED: compatible : "bcm,kona-timer" |
| 9 | - reg : Register range for the timer | 9 | - reg : Register range for the timer |
| 10 | - interrupts : interrupt for the timer | 10 | - interrupts : interrupt for the timer |
| 11 | - clocks: phandle + clock specifier pair of the external clock | ||
| 11 | - clock-frequency: frequency that the clock operates | 12 | - clock-frequency: frequency that the clock operates |
| 12 | 13 | ||
| 14 | Only one of clocks or clock-frequency should be specified. | ||
| 15 | |||
| 16 | Refer to clocks/clock-bindings.txt for generic clock consumer properties. | ||
| 17 | |||
| 13 | Example: | 18 | Example: |
| 14 | timer@35006000 { | 19 | timer@35006000 { |
| 15 | compatible = "brcm,kona-timer"; | 20 | compatible = "brcm,kona-timer"; |
| 16 | reg = <0x35006000 0x1000>; | 21 | reg = <0x35006000 0x1000>; |
| 17 | interrupts = <0x0 7 0x4>; | 22 | interrupts = <0x0 7 0x4>; |
| 18 | clock-frequency = <32768>; | 23 | clocks = <&hub_timer_clk>; |
| 19 | }; | 24 | }; |
| 20 | 25 | ||
diff --git a/Documentation/devicetree/bindings/arm/davinci/nand.txt b/Documentation/devicetree/bindings/arm/davinci/nand.txt deleted file mode 100644 index 3545ea704b50..000000000000 --- a/Documentation/devicetree/bindings/arm/davinci/nand.txt +++ /dev/null | |||
| @@ -1,46 +0,0 @@ | |||
| 1 | * Texas Instruments Davinci NAND | ||
| 2 | |||
| 3 | This file provides information, what the device node for the | ||
| 4 | davinci nand interface contain. | ||
| 5 | |||
| 6 | Required properties: | ||
| 7 | - compatible: "ti,davinci-nand"; | ||
| 8 | - reg : contain 2 offset/length values: | ||
| 9 | - offset and length for the access window | ||
| 10 | - offset and length for accessing the aemif control registers | ||
| 11 | - ti,davinci-chipselect: Indicates on the davinci_nand driver which | ||
| 12 | chipselect is used for accessing the nand. | ||
| 13 | |||
| 14 | Recommended properties : | ||
| 15 | - ti,davinci-mask-ale: mask for ale | ||
| 16 | - ti,davinci-mask-cle: mask for cle | ||
| 17 | - ti,davinci-mask-chipsel: mask for chipselect | ||
| 18 | - ti,davinci-ecc-mode: ECC mode valid values for davinci driver: | ||
| 19 | - "none" | ||
| 20 | - "soft" | ||
| 21 | - "hw" | ||
| 22 | - ti,davinci-ecc-bits: used ECC bits, currently supported 1 or 4. | ||
| 23 | - ti,davinci-nand-buswidth: buswidth 8 or 16 | ||
| 24 | - ti,davinci-nand-use-bbt: use flash based bad block table support. | ||
| 25 | |||
| 26 | nand device bindings may contain additional sub-nodes describing | ||
| 27 | partitions of the address space. See partition.txt for more detail. | ||
| 28 | |||
| 29 | Example(da850 EVM ): | ||
| 30 | nand_cs3@62000000 { | ||
| 31 | compatible = "ti,davinci-nand"; | ||
| 32 | reg = <0x62000000 0x807ff | ||
| 33 | 0x68000000 0x8000>; | ||
| 34 | ti,davinci-chipselect = <1>; | ||
| 35 | ti,davinci-mask-ale = <0>; | ||
| 36 | ti,davinci-mask-cle = <0>; | ||
| 37 | ti,davinci-mask-chipsel = <0>; | ||
| 38 | ti,davinci-ecc-mode = "hw"; | ||
| 39 | ti,davinci-ecc-bits = <4>; | ||
| 40 | ti,davinci-nand-use-bbt; | ||
| 41 | |||
| 42 | partition@180000 { | ||
| 43 | label = "ubifs"; | ||
| 44 | reg = <0x180000 0x7e80000>; | ||
| 45 | }; | ||
| 46 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt b/Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt new file mode 100644 index 000000000000..780d0392a66b --- /dev/null +++ b/Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | Trusted Foundations | ||
| 2 | ------------------- | ||
| 3 | |||
| 4 | Boards that use the Trusted Foundations secure monitor can signal its | ||
| 5 | presence by declaring a node compatible with "tlm,trusted-foundations" | ||
| 6 | under the /firmware/ node | ||
| 7 | |||
| 8 | Required properties: | ||
| 9 | - compatible: "tlm,trusted-foundations" | ||
| 10 | - tlm,version-major: major version number of Trusted Foundations firmware | ||
| 11 | - tlm,version-minor: minor version number of Trusted Foundations firmware | ||
| 12 | |||
| 13 | Example: | ||
| 14 | firmware { | ||
| 15 | trusted-foundations { | ||
| 16 | compatible = "tlm,trusted-foundations"; | ||
| 17 | tlm,version-major = <2>; | ||
| 18 | tlm,version-minor = <8>; | ||
| 19 | }; | ||
| 20 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/gic.txt b/Documentation/devicetree/bindings/arm/gic.txt index 3dfb0c0384f5..bae0d87a38b2 100644 --- a/Documentation/devicetree/bindings/arm/gic.txt +++ b/Documentation/devicetree/bindings/arm/gic.txt | |||
| @@ -11,6 +11,7 @@ have PPIs or SGIs. | |||
| 11 | Main node required properties: | 11 | Main node required properties: |
| 12 | 12 | ||
| 13 | - compatible : should be one of: | 13 | - compatible : should be one of: |
| 14 | "arm,gic-400" | ||
| 14 | "arm,cortex-a15-gic" | 15 | "arm,cortex-a15-gic" |
| 15 | "arm,cortex-a9-gic" | 16 | "arm,cortex-a9-gic" |
| 16 | "arm,cortex-a7-gic" | 17 | "arm,cortex-a7-gic" |
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt new file mode 100644 index 000000000000..8c7a4653508d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | Hisilicon Platforms Device Tree Bindings | ||
| 2 | ---------------------------------------------------- | ||
| 3 | |||
| 4 | Hi4511 Board | ||
| 5 | Required root node properties: | ||
| 6 | - compatible = "hisilicon,hi3620-hi4511"; | ||
| 7 | |||
| 8 | Hisilicon system controller | ||
| 9 | |||
| 10 | Required properties: | ||
| 11 | - compatible : "hisilicon,sysctrl" | ||
| 12 | - reg : Register address and size | ||
| 13 | |||
| 14 | Optional properties: | ||
| 15 | - smp-offset : offset in sysctrl for notifying slave cpu booting | ||
| 16 | cpu 1, reg; | ||
| 17 | cpu 2, reg + 0x4; | ||
| 18 | cpu 3, reg + 0x8; | ||
| 19 | If reg value is not zero, cpun exit wfi and go | ||
| 20 | - resume-offset : offset in sysctrl for notifying cpu0 when resume | ||
| 21 | - reboot-offset : offset in sysctrl for system reboot | ||
| 22 | |||
| 23 | Example: | ||
| 24 | |||
| 25 | /* for Hi3620 */ | ||
| 26 | sysctrl: system-controller@fc802000 { | ||
| 27 | compatible = "hisilicon,sysctrl"; | ||
| 28 | reg = <0xfc802000 0x1000>; | ||
| 29 | smp-offset = <0x31c>; | ||
| 30 | resume-offset = <0x308>; | ||
| 31 | reboot-offset = <0x4>; | ||
| 32 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt index c0c7626fd0ff..b513cb8196fe 100644 --- a/Documentation/devicetree/bindings/arm/l2cc.txt +++ b/Documentation/devicetree/bindings/arm/l2cc.txt | |||
| @@ -7,20 +7,21 @@ The ARM L2 cache representation in the device tree should be done as follows: | |||
| 7 | Required properties: | 7 | Required properties: |
| 8 | 8 | ||
| 9 | - compatible : should be one of: | 9 | - compatible : should be one of: |
| 10 | "arm,pl310-cache" | 10 | "arm,pl310-cache" |
| 11 | "arm,l220-cache" | 11 | "arm,l220-cache" |
| 12 | "arm,l210-cache" | 12 | "arm,l210-cache" |
| 13 | "marvell,aurora-system-cache": Marvell Controller designed to be | 13 | "bcm,bcm11351-a2-pl310-cache": DEPRECATED by "brcm,bcm11351-a2-pl310-cache" |
| 14 | "brcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an | ||
| 15 | offset needs to be added to the address before passing down to the L2 | ||
| 16 | cache controller | ||
| 17 | "marvell,aurora-system-cache": Marvell Controller designed to be | ||
| 14 | compatible with the ARM one, with system cache mode (meaning | 18 | compatible with the ARM one, with system cache mode (meaning |
| 15 | maintenance operations on L1 are broadcasted to the L2 and L2 | 19 | maintenance operations on L1 are broadcasted to the L2 and L2 |
| 16 | performs the same operation). | 20 | performs the same operation). |
| 17 | "marvell,"aurora-outer-cache: Marvell Controller designed to be | 21 | "marvell,aurora-outer-cache": Marvell Controller designed to be |
| 18 | compatible with the ARM one with outer cache mode. | 22 | compatible with the ARM one with outer cache mode. |
| 19 | "brcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an | 23 | "marvell,tauros3-cache": Marvell Tauros3 cache controller, compatible |
| 20 | offset needs to be added to the address before passing down to the L2 | 24 | with arm,pl310-cache controller. |
| 21 | cache controller | ||
| 22 | "bcm,bcm11351-a2-pl310-cache": DEPRECATED by | ||
| 23 | "brcm,bcm11351-a2-pl310-cache" | ||
| 24 | - cache-unified : Specifies the cache is a unified cache. | 25 | - cache-unified : Specifies the cache is a unified cache. |
| 25 | - cache-level : Should be set to 2 for a level 2 cache. | 26 | - cache-level : Should be set to 2 for a level 2 cache. |
| 26 | - reg : Physical base address and size of cache controller's memory mapped | 27 | - reg : Physical base address and size of cache controller's memory mapped |
diff --git a/Documentation/devicetree/bindings/arm/marvell,berlin.txt b/Documentation/devicetree/bindings/arm/marvell,berlin.txt new file mode 100644 index 000000000000..737afa5f8148 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/marvell,berlin.txt | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | Marvell Berlin SoC Family Device Tree Bindings | ||
| 2 | --------------------------------------------------------------- | ||
| 3 | |||
| 4 | Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500 | ||
| 5 | shall have the following properties: | ||
| 6 | |||
| 7 | * Required root node properties: | ||
| 8 | compatible: must contain "marvell,berlin" | ||
| 9 | |||
| 10 | In addition, the above compatible shall be extended with the specific | ||
| 11 | SoC and board used. Currently known SoC compatibles are: | ||
| 12 | "marvell,berlin2" for Marvell Armada 1500 (BG2, 88DE3100), | ||
| 13 | "marvell,berlin2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005) | ||
| 14 | "marvell,berlin2ct" for Marvell Armada ? (BG2CT, 88DE????) | ||
| 15 | "marvell,berlin3" for Marvell Armada ? (BG3, 88DE????) | ||
| 16 | |||
| 17 | * Example: | ||
| 18 | |||
| 19 | / { | ||
| 20 | model = "Sony NSZ-GS7"; | ||
| 21 | compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin"; | ||
| 22 | |||
| 23 | ... | ||
| 24 | } | ||
diff --git a/Documentation/devicetree/bindings/arm/moxart.txt b/Documentation/devicetree/bindings/arm/moxart.txt new file mode 100644 index 000000000000..11087edb0658 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/moxart.txt | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | MOXA ART device tree bindings | ||
| 2 | |||
| 3 | Boards with the MOXA ART SoC shall have the following properties: | ||
| 4 | |||
| 5 | Required root node property: | ||
| 6 | |||
| 7 | compatible = "moxa,moxart"; | ||
| 8 | |||
| 9 | Boards: | ||
| 10 | |||
| 11 | - UC-7112-LX: embedded computer | ||
| 12 | compatible = "moxa,moxart-uc-7112-lx", "moxa,moxart" | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 808c1543b0f8..af9b4a0d902b 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
| @@ -31,6 +31,59 @@ spinlock@1 { | |||
| 31 | ti,hwmods = "spinlock"; | 31 | ti,hwmods = "spinlock"; |
| 32 | }; | 32 | }; |
| 33 | 33 | ||
| 34 | SoC Type (optional): | ||
| 35 | |||
| 36 | - General Purpose devices | ||
| 37 | compatible = "ti,gp" | ||
| 38 | - High Security devices | ||
| 39 | compatible = "ti,hs" | ||
| 40 | |||
| 41 | SoC Families: | ||
| 42 | |||
| 43 | - OMAP2 generic - defaults to OMAP2420 | ||
| 44 | compatible = "ti,omap2" | ||
| 45 | - OMAP3 generic - defaults to OMAP3430 | ||
| 46 | compatible = "ti,omap3" | ||
| 47 | - OMAP4 generic - defaults to OMAP4430 | ||
| 48 | compatible = "ti,omap4" | ||
| 49 | - OMAP5 generic - defaults to OMAP5430 | ||
| 50 | compatible = "ti,omap5" | ||
| 51 | - DRA7 generic - defaults to DRA742 | ||
| 52 | compatible = "ti,dra7" | ||
| 53 | - AM43x generic - defaults to AM4372 | ||
| 54 | compatible = "ti,am43" | ||
| 55 | |||
| 56 | SoCs: | ||
| 57 | |||
| 58 | - OMAP2420 | ||
| 59 | compatible = "ti,omap2420", "ti,omap2" | ||
| 60 | - OMAP2430 | ||
| 61 | compatible = "ti,omap2430", "ti,omap2" | ||
| 62 | |||
| 63 | - OMAP3430 | ||
| 64 | compatible = "ti,omap3430", "ti,omap3" | ||
| 65 | - AM3517 | ||
| 66 | compatible = "ti,am3517", "ti,omap3" | ||
| 67 | - OMAP3630 | ||
| 68 | compatible = "ti,omap36xx", "ti,omap3" | ||
| 69 | - AM33xx | ||
| 70 | compatible = "ti,am33xx", "ti,omap3" | ||
| 71 | |||
| 72 | - OMAP4430 | ||
| 73 | compatible = "ti,omap4430", "ti,omap4" | ||
| 74 | - OMAP4460 | ||
| 75 | compatible = "ti,omap4460", "ti,omap4" | ||
| 76 | |||
| 77 | - OMAP5430 | ||
| 78 | compatible = "ti,omap5430", "ti,omap5" | ||
| 79 | - OMAP5432 | ||
| 80 | compatible = "ti,omap5432", "ti,omap5" | ||
| 81 | |||
| 82 | - DRA742 | ||
| 83 | compatible = "ti,dra7xx", "ti,dra7" | ||
| 84 | |||
| 85 | - AM4372 | ||
| 86 | compatible = "ti,am4372", "ti,am43" | ||
| 34 | 87 | ||
| 35 | Boards: | 88 | Boards: |
| 36 | 89 | ||
| @@ -38,7 +91,7 @@ Boards: | |||
| 38 | compatible = "ti,omap3-beagle", "ti,omap3" | 91 | compatible = "ti,omap3-beagle", "ti,omap3" |
| 39 | 92 | ||
| 40 | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board | 93 | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board |
| 41 | compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" | 94 | compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3" |
| 42 | 95 | ||
| 43 | - OMAP4 SDP : Software Development Board | 96 | - OMAP4 SDP : Software Development Board |
| 44 | compatible = "ti,omap4-sdp", "ti,omap4430" | 97 | compatible = "ti,omap4-sdp", "ti,omap4430" |
diff --git a/Documentation/devicetree/bindings/arm/samsung/sysreg.txt b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt index 5039c0a12f55..0ab3251a6ec2 100644 --- a/Documentation/devicetree/bindings/arm/samsung/sysreg.txt +++ b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt | |||
| @@ -1,7 +1,12 @@ | |||
| 1 | SAMSUNG S5P/Exynos SoC series System Registers (SYSREG) | 1 | SAMSUNG S5P/Exynos SoC series System Registers (SYSREG) |
| 2 | 2 | ||
| 3 | Properties: | 3 | Properties: |
| 4 | - name : should be 'sysreg'; | ||
| 5 | - compatible : should contain "samsung,<chip name>-sysreg", "syscon"; | 4 | - compatible : should contain "samsung,<chip name>-sysreg", "syscon"; |
| 6 | For Exynos4 SoC series it should be "samsung,exynos4-sysreg", "syscon"; | 5 | For Exynos4 SoC series it should be "samsung,exynos4-sysreg", "syscon"; |
| 7 | - reg : offset and length of the register set. | 6 | - reg : offset and length of the register set. |
| 7 | |||
| 8 | Example: | ||
| 9 | syscon@10010000 { | ||
| 10 | compatible = "samsung,exynos4-sysreg", "syscon"; | ||
| 11 | reg = <0x10010000 0x400>; | ||
| 12 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/tegra.txt b/Documentation/devicetree/bindings/arm/tegra.txt index ed9c85334436..558ed4b4ef39 100644 --- a/Documentation/devicetree/bindings/arm/tegra.txt +++ b/Documentation/devicetree/bindings/arm/tegra.txt | |||
| @@ -32,3 +32,8 @@ board-specific compatible values: | |||
| 32 | nvidia,whistler | 32 | nvidia,whistler |
| 33 | toradex,colibri_t20-512 | 33 | toradex,colibri_t20-512 |
| 34 | toradex,iris | 34 | toradex,iris |
| 35 | |||
| 36 | Trusted Foundations | ||
| 37 | ------------------------------------------- | ||
| 38 | Tegra supports the Trusted Foundation secure monitor. See the | ||
| 39 | "tlm,trusted-foundations" binding's documentation for more details. | ||
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt index 1608a54e90e1..68ac65f82a1c 100644 --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt | |||
| @@ -9,6 +9,7 @@ Required properties: | |||
| 9 | - compatible : Should contain "nvidia,tegra<chip>-pmc". | 9 | - compatible : Should contain "nvidia,tegra<chip>-pmc". |
| 10 | - reg : Offset and length of the register set for the device | 10 | - reg : Offset and length of the register set for the device |
| 11 | - clocks : Must contain an entry for each entry in clock-names. | 11 | - clocks : Must contain an entry for each entry in clock-names. |
| 12 | See ../clocks/clock-bindings.txt for details. | ||
| 12 | - clock-names : Must include the following entries: | 13 | - clock-names : Must include the following entries: |
| 13 | "pclk" (The Tegra clock of that name), | 14 | "pclk" (The Tegra clock of that name), |
| 14 | "clk32k_in" (The 32KHz clock input to Tegra). | 15 | "clk32k_in" (The 32KHz clock input to Tegra). |
diff --git a/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt b/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt index 9989eda755d9..c9cf605bb995 100644 --- a/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt +++ b/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt | |||
| @@ -29,3 +29,8 @@ pic: pic@14000000 { | |||
| 29 | clear-mask = <0xffffffff>; | 29 | clear-mask = <0xffffffff>; |
| 30 | valid-mask = <0x003fffff>; | 30 | valid-mask = <0x003fffff>; |
| 31 | }; | 31 | }; |
| 32 | |||
| 33 | Optional properties: | ||
| 34 | - interrupts: if the FPGA IRQ controller is cascaded, i.e. if its IRQ | ||
| 35 | output is simply connected to the input of another IRQ controller, | ||
| 36 | then the parent IRQ shall be specified in this property. | ||
diff --git a/Documentation/devicetree/bindings/ata/marvell.txt b/Documentation/devicetree/bindings/ata/marvell.txt index b5cdd20cde9c..1c8351604d38 100644 --- a/Documentation/devicetree/bindings/ata/marvell.txt +++ b/Documentation/devicetree/bindings/ata/marvell.txt | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | * Marvell Orion SATA | 1 | * Marvell Orion SATA |
| 2 | 2 | ||
| 3 | Required Properties: | 3 | Required Properties: |
| 4 | - compatibility : "marvell,orion-sata" | 4 | - compatibility : "marvell,orion-sata" or "marvell,armada-370-sata" |
| 5 | - reg : Address range of controller | 5 | - reg : Address range of controller |
| 6 | - interrupts : Interrupt controller is using | 6 | - interrupts : Interrupt controller is using |
| 7 | - nr-ports : Number of SATA ports in use. | 7 | - nr-ports : Number of SATA ports in use. |
diff --git a/Documentation/devicetree/bindings/ata/sata_rcar.txt b/Documentation/devicetree/bindings/ata/sata_rcar.txt new file mode 100644 index 000000000000..1e6111333fa8 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/sata_rcar.txt | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | * Renesas R-Car SATA | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : should contain one of the following: | ||
| 5 | - "renesas,sata-r8a7779" for R-Car H1 | ||
| 6 | - "renesas,sata-r8a7790" for R-Car H2 | ||
| 7 | - "renesas,sata-r8a7791" for R-Car M2 | ||
| 8 | - reg : address and length of the SATA registers; | ||
| 9 | - interrupts : must consist of one interrupt specifier. | ||
| 10 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | sata: sata@fc600000 { | ||
| 14 | compatible = "renesas,sata-r8a7779"; | ||
| 15 | reg = <0xfc600000 0x2000>; | ||
| 16 | interrupt-parent = <&gic>; | ||
| 17 | interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>; | ||
| 18 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/at91-clock.txt b/Documentation/devicetree/bindings/clock/at91-clock.txt new file mode 100644 index 000000000000..cd5e23912888 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/at91-clock.txt | |||
| @@ -0,0 +1,339 @@ | |||
| 1 | Device Tree Clock bindings for arch-at91 | ||
| 2 | |||
| 3 | This binding uses the common clock binding[1]. | ||
| 4 | |||
| 5 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 6 | |||
| 7 | Required properties: | ||
| 8 | - compatible : shall be one of the following: | ||
| 9 | "atmel,at91rm9200-pmc" or | ||
| 10 | "atmel,at91sam9g45-pmc" or | ||
| 11 | "atmel,at91sam9n12-pmc" or | ||
| 12 | "atmel,at91sam9x5-pmc" or | ||
| 13 | "atmel,sama5d3-pmc": | ||
| 14 | at91 PMC (Power Management Controller) | ||
| 15 | All at91 specific clocks (clocks defined below) must be child | ||
| 16 | node of the PMC node. | ||
| 17 | |||
| 18 | "atmel,at91rm9200-clk-main": | ||
| 19 | at91 main oscillator | ||
| 20 | |||
| 21 | "atmel,at91rm9200-clk-master" or | ||
| 22 | "atmel,at91sam9x5-clk-master": | ||
| 23 | at91 master clock | ||
| 24 | |||
| 25 | "atmel,at91sam9x5-clk-peripheral" or | ||
| 26 | "atmel,at91rm9200-clk-peripheral": | ||
| 27 | at91 peripheral clocks | ||
| 28 | |||
| 29 | "atmel,at91rm9200-clk-pll" or | ||
| 30 | "atmel,at91sam9g45-clk-pll" or | ||
| 31 | "atmel,at91sam9g20-clk-pllb" or | ||
| 32 | "atmel,sama5d3-clk-pll": | ||
| 33 | at91 pll clocks | ||
| 34 | |||
| 35 | "atmel,at91sam9x5-clk-plldiv": | ||
| 36 | at91 plla divisor | ||
| 37 | |||
| 38 | "atmel,at91rm9200-clk-programmable" or | ||
| 39 | "atmel,at91sam9g45-clk-programmable" or | ||
| 40 | "atmel,at91sam9x5-clk-programmable": | ||
| 41 | at91 programmable clocks | ||
| 42 | |||
| 43 | "atmel,at91sam9x5-clk-smd": | ||
| 44 | at91 SMD (Soft Modem) clock | ||
| 45 | |||
| 46 | "atmel,at91rm9200-clk-system": | ||
| 47 | at91 system clocks | ||
| 48 | |||
| 49 | "atmel,at91rm9200-clk-usb" or | ||
| 50 | "atmel,at91sam9x5-clk-usb" or | ||
| 51 | "atmel,at91sam9n12-clk-usb": | ||
| 52 | at91 usb clock | ||
| 53 | |||
| 54 | "atmel,at91sam9x5-clk-utmi": | ||
| 55 | at91 utmi clock | ||
| 56 | |||
| 57 | Required properties for PMC node: | ||
| 58 | - reg : defines the IO memory reserved for the PMC. | ||
| 59 | - #size-cells : shall be 0 (reg is used to encode clk id). | ||
| 60 | - #address-cells : shall be 1 (reg is used to encode clk id). | ||
| 61 | - interrupts : shall be set to PMC interrupt line. | ||
| 62 | - interrupt-controller : tell that the PMC is an interrupt controller. | ||
| 63 | - #interrupt-cells : must be set to 1. The first cell encodes the interrupt id, | ||
| 64 | and reflect the bit position in the PMC_ER/DR/SR registers. | ||
| 65 | You can use the dt macros defined in dt-bindings/clk/at91.h. | ||
| 66 | 0 (AT91_PMC_MOSCS) -> main oscillator ready | ||
| 67 | 1 (AT91_PMC_LOCKA) -> PLL A ready | ||
| 68 | 2 (AT91_PMC_LOCKB) -> PLL B ready | ||
| 69 | 3 (AT91_PMC_MCKRDY) -> master clock ready | ||
| 70 | 6 (AT91_PMC_LOCKU) -> UTMI PLL clock ready | ||
| 71 | 8 .. 15 (AT91_PMC_PCKRDY(id)) -> programmable clock ready | ||
| 72 | 16 (AT91_PMC_MOSCSELS) -> main oscillator selected | ||
| 73 | 17 (AT91_PMC_MOSCRCS) -> RC main oscillator stabilized | ||
| 74 | 18 (AT91_PMC_CFDEV) -> clock failure detected | ||
| 75 | |||
| 76 | For example: | ||
| 77 | pmc: pmc@fffffc00 { | ||
| 78 | compatible = "atmel,sama5d3-pmc"; | ||
| 79 | interrupts = <1 4 7>; | ||
| 80 | interrupt-controller; | ||
| 81 | #interrupt-cells = <2>; | ||
| 82 | #size-cells = <0>; | ||
| 83 | #address-cells = <1>; | ||
| 84 | |||
| 85 | /* put at91 clocks here */ | ||
| 86 | }; | ||
| 87 | |||
| 88 | Required properties for main clock: | ||
| 89 | - interrupt-parent : must reference the PMC node. | ||
| 90 | - interrupts : shall be set to "<0>". | ||
| 91 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 92 | - clocks (optional if clock-frequency is provided) : shall be the slow clock | ||
| 93 | phandle. This clock is used to calculate the main clock rate if | ||
| 94 | "clock-frequency" is not provided. | ||
| 95 | - clock-frequency : the main oscillator frequency.Prefer the use of | ||
| 96 | "clock-frequency" over automatic clock rate calculation. | ||
| 97 | |||
| 98 | For example: | ||
| 99 | main: mainck { | ||
| 100 | compatible = "atmel,at91rm9200-clk-main"; | ||
| 101 | interrupt-parent = <&pmc>; | ||
| 102 | interrupts = <0>; | ||
| 103 | #clock-cells = <0>; | ||
| 104 | clocks = <&ck32k>; | ||
| 105 | clock-frequency = <18432000>; | ||
| 106 | }; | ||
| 107 | |||
| 108 | Required properties for master clock: | ||
| 109 | - interrupt-parent : must reference the PMC node. | ||
| 110 | - interrupts : shall be set to "<3>". | ||
| 111 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 112 | - clocks : shall be the master clock sources (see atmel datasheet) phandles. | ||
| 113 | e.g. "<&ck32k>, <&main>, <&plla>, <&pllb>". | ||
| 114 | - atmel,clk-output-range : minimum and maximum clock frequency (two u32 | ||
| 115 | fields). | ||
| 116 | e.g. output = <0 133000000>; <=> 0 to 133MHz. | ||
| 117 | - atmel,clk-divisors : master clock divisors table (four u32 fields). | ||
| 118 | 0 <=> reserved value. | ||
| 119 | e.g. divisors = <1 2 4 6>; | ||
| 120 | - atmel,master-clk-have-div3-pres : some SoC use the reserved value 7 in the | ||
| 121 | PRES field as CLOCK_DIV3 (e.g sam9x5). | ||
| 122 | |||
| 123 | For example: | ||
| 124 | mck: mck { | ||
| 125 | compatible = "atmel,at91rm9200-clk-master"; | ||
| 126 | interrupt-parent = <&pmc>; | ||
| 127 | interrupts = <3>; | ||
| 128 | #clock-cells = <0>; | ||
| 129 | atmel,clk-output-range = <0 133000000>; | ||
| 130 | atmel,clk-divisors = <1 2 4 0>; | ||
| 131 | }; | ||
| 132 | |||
| 133 | Required properties for peripheral clocks: | ||
| 134 | - #size-cells : shall be 0 (reg is used to encode clk id). | ||
| 135 | - #address-cells : shall be 1 (reg is used to encode clk id). | ||
| 136 | - clocks : shall be the master clock phandle. | ||
| 137 | e.g. clocks = <&mck>; | ||
| 138 | - name: device tree node describing a specific system clock. | ||
| 139 | * #clock-cells : from common clock binding; shall be set to 0. | ||
| 140 | * reg: peripheral id. See Atmel's datasheets to get a full | ||
| 141 | list of peripheral ids. | ||
| 142 | * atmel,clk-output-range : minimum and maximum clock frequency | ||
| 143 | (two u32 fields). Only valid on at91sam9x5-clk-peripheral | ||
| 144 | compatible IPs. | ||
| 145 | |||
| 146 | For example: | ||
| 147 | periph: periphck { | ||
| 148 | compatible = "atmel,at91sam9x5-clk-peripheral"; | ||
| 149 | #size-cells = <0>; | ||
| 150 | #address-cells = <1>; | ||
| 151 | clocks = <&mck>; | ||
| 152 | |||
| 153 | ssc0_clk { | ||
| 154 | #clock-cells = <0>; | ||
| 155 | reg = <2>; | ||
| 156 | atmel,clk-output-range = <0 133000000>; | ||
| 157 | }; | ||
| 158 | |||
| 159 | usart0_clk { | ||
| 160 | #clock-cells = <0>; | ||
| 161 | reg = <3>; | ||
| 162 | atmel,clk-output-range = <0 66000000>; | ||
| 163 | }; | ||
| 164 | }; | ||
| 165 | |||
| 166 | |||
| 167 | Required properties for pll clocks: | ||
| 168 | - interrupt-parent : must reference the PMC node. | ||
| 169 | - interrupts : shall be set to "<1>". | ||
| 170 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 171 | - clocks : shall be the main clock phandle. | ||
| 172 | - reg : pll id. | ||
| 173 | 0 -> PLL A | ||
| 174 | 1 -> PLL B | ||
| 175 | - atmel,clk-input-range : minimum and maximum source clock frequency (two u32 | ||
| 176 | fields). | ||
| 177 | e.g. input = <1 32000000>; <=> 1 to 32MHz. | ||
| 178 | - #atmel,pll-clk-output-range-cells : number of cells reserved for pll output | ||
| 179 | range description. Sould be set to 2, 3 | ||
| 180 | or 4. | ||
| 181 | * 1st and 2nd cells represent the frequency range (min-max). | ||
| 182 | * 3rd cell is optional and represents the OUT field value for the given | ||
| 183 | range. | ||
| 184 | * 4th cell is optional and represents the ICPLL field (PLLICPR | ||
| 185 | register) | ||
| 186 | - atmel,pll-clk-output-ranges : pll output frequency ranges + optional parameter | ||
| 187 | depending on #atmel,pll-output-range-cells | ||
| 188 | property value. | ||
| 189 | |||
| 190 | For example: | ||
| 191 | plla: pllack { | ||
| 192 | compatible = "atmel,at91sam9g45-clk-pll"; | ||
| 193 | interrupt-parent = <&pmc>; | ||
| 194 | interrupts = <1>; | ||
| 195 | #clock-cells = <0>; | ||
| 196 | clocks = <&main>; | ||
| 197 | reg = <0>; | ||
| 198 | atmel,clk-input-range = <2000000 32000000>; | ||
| 199 | #atmel,pll-clk-output-range-cells = <4>; | ||
| 200 | atmel,pll-clk-output-ranges = <74500000 800000000 0 0 | ||
| 201 | 69500000 750000000 1 0 | ||
| 202 | 64500000 700000000 2 0 | ||
| 203 | 59500000 650000000 3 0 | ||
| 204 | 54500000 600000000 0 1 | ||
| 205 | 49500000 550000000 1 1 | ||
| 206 | 44500000 500000000 2 1 | ||
| 207 | 40000000 450000000 3 1>; | ||
| 208 | }; | ||
| 209 | |||
| 210 | Required properties for plldiv clocks (plldiv = pll / 2): | ||
| 211 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 212 | - clocks : shall be the plla clock phandle. | ||
| 213 | |||
| 214 | The pll divisor is equal to 2 and cannot be changed. | ||
| 215 | |||
| 216 | For example: | ||
| 217 | plladiv: plladivck { | ||
| 218 | compatible = "atmel,at91sam9x5-clk-plldiv"; | ||
| 219 | #clock-cells = <0>; | ||
| 220 | clocks = <&plla>; | ||
| 221 | }; | ||
| 222 | |||
| 223 | Required properties for programmable clocks: | ||
| 224 | - interrupt-parent : must reference the PMC node. | ||
| 225 | - #size-cells : shall be 0 (reg is used to encode clk id). | ||
| 226 | - #address-cells : shall be 1 (reg is used to encode clk id). | ||
| 227 | - clocks : shall be the programmable clock source phandles. | ||
| 228 | e.g. clocks = <&clk32k>, <&main>, <&plla>, <&pllb>; | ||
| 229 | - name: device tree node describing a specific prog clock. | ||
| 230 | * #clock-cells : from common clock binding; shall be set to 0. | ||
| 231 | * reg : programmable clock id (register offset from PCKx | ||
| 232 | register). | ||
| 233 | * interrupts : shall be set to "<(8 + id)>". | ||
| 234 | |||
| 235 | For example: | ||
| 236 | prog: progck { | ||
| 237 | compatible = "atmel,at91sam9g45-clk-programmable"; | ||
| 238 | #size-cells = <0>; | ||
| 239 | #address-cells = <1>; | ||
| 240 | interrupt-parent = <&pmc>; | ||
| 241 | clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>; | ||
| 242 | |||
| 243 | prog0 { | ||
| 244 | #clock-cells = <0>; | ||
| 245 | reg = <0>; | ||
| 246 | interrupts = <8>; | ||
| 247 | }; | ||
| 248 | |||
| 249 | prog1 { | ||
| 250 | #clock-cells = <0>; | ||
| 251 | reg = <1>; | ||
| 252 | interrupts = <9>; | ||
| 253 | }; | ||
| 254 | }; | ||
| 255 | |||
| 256 | |||
| 257 | Required properties for smd clock: | ||
| 258 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 259 | - clocks : shall be the smd clock source phandles. | ||
| 260 | e.g. clocks = <&plladiv>, <&utmi>; | ||
| 261 | |||
| 262 | For example: | ||
| 263 | smd: smdck { | ||
| 264 | compatible = "atmel,at91sam9x5-clk-smd"; | ||
| 265 | #clock-cells = <0>; | ||
| 266 | clocks = <&plladiv>, <&utmi>; | ||
| 267 | }; | ||
| 268 | |||
| 269 | Required properties for system clocks: | ||
| 270 | - #size-cells : shall be 0 (reg is used to encode clk id). | ||
| 271 | - #address-cells : shall be 1 (reg is used to encode clk id). | ||
| 272 | - name: device tree node describing a specific system clock. | ||
| 273 | * #clock-cells : from common clock binding; shall be set to 0. | ||
| 274 | * reg: system clock id (bit position in SCER/SCDR/SCSR registers). | ||
| 275 | See Atmel's datasheet to get a full list of system clock ids. | ||
| 276 | |||
| 277 | For example: | ||
| 278 | system: systemck { | ||
| 279 | compatible = "atmel,at91rm9200-clk-system"; | ||
| 280 | #address-cells = <1>; | ||
| 281 | #size-cells = <0>; | ||
| 282 | |||
| 283 | ddrck { | ||
| 284 | #clock-cells = <0>; | ||
| 285 | reg = <2>; | ||
| 286 | clocks = <&mck>; | ||
| 287 | }; | ||
| 288 | |||
| 289 | uhpck { | ||
| 290 | #clock-cells = <0>; | ||
| 291 | reg = <6>; | ||
| 292 | clocks = <&usb>; | ||
| 293 | }; | ||
| 294 | |||
| 295 | udpck { | ||
| 296 | #clock-cells = <0>; | ||
| 297 | reg = <7>; | ||
| 298 | clocks = <&usb>; | ||
| 299 | }; | ||
| 300 | }; | ||
| 301 | |||
| 302 | |||
| 303 | Required properties for usb clock: | ||
| 304 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 305 | - clocks : shall be the smd clock source phandles. | ||
| 306 | e.g. clocks = <&pllb>; | ||
| 307 | - atmel,clk-divisors (only available for "atmel,at91rm9200-clk-usb"): | ||
| 308 | usb clock divisor table. | ||
| 309 | e.g. divisors = <1 2 4 0>; | ||
| 310 | |||
| 311 | For example: | ||
| 312 | usb: usbck { | ||
| 313 | compatible = "atmel,at91sam9x5-clk-usb"; | ||
| 314 | #clock-cells = <0>; | ||
| 315 | clocks = <&plladiv>, <&utmi>; | ||
| 316 | }; | ||
| 317 | |||
| 318 | usb: usbck { | ||
| 319 | compatible = "atmel,at91rm9200-clk-usb"; | ||
| 320 | #clock-cells = <0>; | ||
| 321 | clocks = <&pllb>; | ||
| 322 | atmel,clk-divisors = <1 2 4 0>; | ||
| 323 | }; | ||
| 324 | |||
| 325 | |||
| 326 | Required properties for utmi clock: | ||
| 327 | - interrupt-parent : must reference the PMC node. | ||
| 328 | - interrupts : shall be set to "<AT91_PMC_LOCKU IRQ_TYPE_LEVEL_HIGH>". | ||
| 329 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 330 | - clocks : shall be the main clock source phandle. | ||
| 331 | |||
| 332 | For example: | ||
| 333 | utmi: utmick { | ||
| 334 | compatible = "atmel,at91sam9x5-clk-utmi"; | ||
| 335 | interrupt-parent = <&pmc>; | ||
| 336 | interrupts = <AT91_PMC_LOCKU IRQ_TYPE_LEVEL_HIGH>; | ||
| 337 | #clock-cells = <0>; | ||
| 338 | clocks = <&main>; | ||
| 339 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/bcm-kona-clock.txt b/Documentation/devicetree/bindings/clock/bcm-kona-clock.txt new file mode 100644 index 000000000000..56d1f4961075 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/bcm-kona-clock.txt | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | Broadcom Kona Family Clocks | ||
| 2 | |||
| 3 | This binding is associated with Broadcom SoCs having "Kona" style | ||
| 4 | clock control units (CCUs). A CCU is a clock provider that manages | ||
| 5 | a set of clock signals. Each CCU is represented by a node in the | ||
| 6 | device tree. | ||
| 7 | |||
| 8 | This binding uses the common clock binding: | ||
| 9 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 10 | |||
| 11 | Required properties: | ||
| 12 | - compatible | ||
| 13 | Shall have one of the following values: | ||
| 14 | - "brcm,bcm11351-root-ccu" | ||
| 15 | - "brcm,bcm11351-aon-ccu" | ||
| 16 | - "brcm,bcm11351-hub-ccu" | ||
| 17 | - "brcm,bcm11351-master-ccu" | ||
| 18 | - "brcm,bcm11351-slave-ccu" | ||
| 19 | - reg | ||
| 20 | Shall define the base and range of the address space | ||
| 21 | containing clock control registers | ||
| 22 | - #clock-cells | ||
| 23 | Shall have value <1>. The permitted clock-specifier values | ||
| 24 | are defined below. | ||
| 25 | - clock-output-names | ||
| 26 | Shall be an ordered list of strings defining the names of | ||
| 27 | the clocks provided by the CCU. | ||
| 28 | |||
| 29 | |||
| 30 | BCM281XX family SoCs use Kona CCUs. The following table defines | ||
| 31 | the set of CCUs and clock specifiers for BCM281XX clocks. When | ||
| 32 | a clock consumer references a clocks, its symbolic specifier | ||
| 33 | (rather than its numeric index value) should be used. These | ||
| 34 | specifiers are defined in "include/dt-bindings/clock/bcm281xx.h". | ||
| 35 | |||
| 36 | CCU Clock Type Index Specifier | ||
| 37 | --- ----- ---- ----- --------- | ||
| 38 | root frac_1m peri 0 BCM281XX_ROOT_CCU_FRAC_1M | ||
| 39 | |||
| 40 | aon hub_timer peri 0 BCM281XX_AON_CCU_HUB_TIMER | ||
| 41 | aon pmu_bsc peri 1 BCM281XX_AON_CCU_PMU_BSC | ||
| 42 | aon pmu_bsc_var peri 2 BCM281XX_AON_CCU_PMU_BSC_VAR | ||
| 43 | |||
| 44 | hub tmon_1m peri 0 BCM281XX_HUB_CCU_TMON_1M | ||
| 45 | |||
| 46 | master sdio1 peri 0 BCM281XX_MASTER_CCU_SDIO1 | ||
| 47 | master sdio2 peri 1 BCM281XX_MASTER_CCU_SDIO2 | ||
| 48 | master sdio3 peri 2 BCM281XX_MASTER_CCU_SDIO3 | ||
| 49 | master sdio4 peri 3 BCM281XX_MASTER_CCU_SDIO4 | ||
| 50 | master dmac peri 4 BCM281XX_MASTER_CCU_DMAC | ||
| 51 | master usb_ic peri 5 BCM281XX_MASTER_CCU_USB_IC | ||
| 52 | master hsic2_48m peri 6 BCM281XX_MASTER_CCU_HSIC_48M | ||
| 53 | master hsic2_12m peri 7 BCM281XX_MASTER_CCU_HSIC_12M | ||
| 54 | |||
| 55 | slave uartb peri 0 BCM281XX_SLAVE_CCU_UARTB | ||
| 56 | slave uartb2 peri 1 BCM281XX_SLAVE_CCU_UARTB2 | ||
| 57 | slave uartb3 peri 2 BCM281XX_SLAVE_CCU_UARTB3 | ||
| 58 | slave uartb4 peri 3 BCM281XX_SLAVE_CCU_UARTB4 | ||
| 59 | slave ssp0 peri 4 BCM281XX_SLAVE_CCU_SSP0 | ||
| 60 | slave ssp2 peri 5 BCM281XX_SLAVE_CCU_SSP2 | ||
| 61 | slave bsc1 peri 6 BCM281XX_SLAVE_CCU_BSC1 | ||
| 62 | slave bsc2 peri 7 BCM281XX_SLAVE_CCU_BSC2 | ||
| 63 | slave bsc3 peri 8 BCM281XX_SLAVE_CCU_BSC3 | ||
| 64 | slave pwm peri 9 BCM281XX_SLAVE_CCU_PWM | ||
| 65 | |||
| 66 | |||
| 67 | Device tree example: | ||
| 68 | |||
| 69 | slave_ccu: slave_ccu { | ||
| 70 | compatible = "brcm,bcm11351-slave-ccu"; | ||
| 71 | reg = <0x3e011000 0x0f00>; | ||
| 72 | #clock-cells = <1>; | ||
| 73 | clock-output-names = "uartb", | ||
| 74 | "uartb2", | ||
| 75 | "uartb3", | ||
| 76 | "uartb4"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | ref_crystal_clk: ref_crystal { | ||
| 80 | #clock-cells = <0>; | ||
| 81 | compatible = "fixed-clock"; | ||
| 82 | clock-frequency = <26000000>; | ||
| 83 | }; | ||
| 84 | |||
| 85 | uart@3e002000 { | ||
| 86 | compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; | ||
| 87 | status = "disabled"; | ||
| 88 | reg = <0x3e002000 0x1000>; | ||
| 89 | clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>; | ||
| 90 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
| 91 | reg-shift = <2>; | ||
| 92 | reg-io-width = <4>; | ||
| 93 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt index 75e2e1999f87..180e8835569e 100644 --- a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt +++ b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt | |||
| @@ -8,12 +8,29 @@ Required Properties: | |||
| 8 | 8 | ||
| 9 | - compatible: should be one of the following: | 9 | - compatible: should be one of the following: |
| 10 | - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs. | 10 | - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs. |
| 11 | - "samsung,exynos5250-audss-clock" - controller compatible with all Exynos5 SoCs. | 11 | - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250 |
| 12 | 12 | SoCs. | |
| 13 | - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420 | ||
| 14 | SoCs. | ||
| 13 | - reg: physical base address and length of the controller's register set. | 15 | - reg: physical base address and length of the controller's register set. |
| 14 | 16 | ||
| 15 | - #clock-cells: should be 1. | 17 | - #clock-cells: should be 1. |
| 16 | 18 | ||
| 19 | - clocks: | ||
| 20 | - pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll" | ||
| 21 | is used if not specified. | ||
| 22 | - pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll" | ||
| 23 | is used if not specified. | ||
| 24 | - cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not | ||
| 25 | specified. | ||
| 26 | - sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if | ||
| 27 | not specified. | ||
| 28 | - sclk_pcm_in: PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not | ||
| 29 | specified. | ||
| 30 | |||
| 31 | - clock-names: Aliases for the above clocks. They should be "pll_ref", | ||
| 32 | "pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively. | ||
| 33 | |||
| 17 | The following is the list of clocks generated by the controller. Each clock is | 34 | The following is the list of clocks generated by the controller. Each clock is |
| 18 | assigned an identifier and client nodes use this identifier to specify the | 35 | assigned an identifier and client nodes use this identifier to specify the |
| 19 | clock which they consume. Some of the clocks are available only on a particular | 36 | clock which they consume. Some of the clocks are available only on a particular |
| @@ -34,16 +51,30 @@ i2s_bus 6 | |||
| 34 | sclk_i2s 7 | 51 | sclk_i2s 7 |
| 35 | pcm_bus 8 | 52 | pcm_bus 8 |
| 36 | sclk_pcm 9 | 53 | sclk_pcm 9 |
| 54 | adma 10 Exynos5420 | ||
| 55 | |||
| 56 | Example 1: An example of a clock controller node using the default input | ||
| 57 | clock names is listed below. | ||
| 58 | |||
| 59 | clock_audss: audss-clock-controller@3810000 { | ||
| 60 | compatible = "samsung,exynos5250-audss-clock"; | ||
| 61 | reg = <0x03810000 0x0C>; | ||
| 62 | #clock-cells = <1>; | ||
| 63 | }; | ||
| 37 | 64 | ||
| 38 | Example 1: An example of a clock controller node is listed below. | 65 | Example 2: An example of a clock controller node with the input clocks |
| 66 | specified. | ||
| 39 | 67 | ||
| 40 | clock_audss: audss-clock-controller@3810000 { | 68 | clock_audss: audss-clock-controller@3810000 { |
| 41 | compatible = "samsung,exynos5250-audss-clock"; | 69 | compatible = "samsung,exynos5250-audss-clock"; |
| 42 | reg = <0x03810000 0x0C>; | 70 | reg = <0x03810000 0x0C>; |
| 43 | #clock-cells = <1>; | 71 | #clock-cells = <1>; |
| 72 | clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>, | ||
| 73 | <&ext_i2s_clk>; | ||
| 74 | clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk"; | ||
| 44 | }; | 75 | }; |
| 45 | 76 | ||
| 46 | Example 2: I2S controller node that consumes the clock generated by the clock | 77 | Example 3: I2S controller node that consumes the clock generated by the clock |
| 47 | controller. Refer to the standard clock bindings for information | 78 | controller. Refer to the standard clock bindings for information |
| 48 | about 'clocks' and 'clock-names' property. | 79 | about 'clocks' and 'clock-names' property. |
| 49 | 80 | ||
diff --git a/Documentation/devicetree/bindings/clock/clock-bindings.txt b/Documentation/devicetree/bindings/clock/clock-bindings.txt index eb65d417f8c4..7c52c29d99fa 100644 --- a/Documentation/devicetree/bindings/clock/clock-bindings.txt +++ b/Documentation/devicetree/bindings/clock/clock-bindings.txt | |||
| @@ -5,7 +5,7 @@ Sources of clock signal can be represented by any node in the device | |||
| 5 | tree. Those nodes are designated as clock providers. Clock consumer | 5 | tree. Those nodes are designated as clock providers. Clock consumer |
| 6 | nodes use a phandle and clock specifier pair to connect clock provider | 6 | nodes use a phandle and clock specifier pair to connect clock provider |
| 7 | outputs to clock inputs. Similar to the gpio specifiers, a clock | 7 | outputs to clock inputs. Similar to the gpio specifiers, a clock |
| 8 | specifier is an array of one more more cells identifying the clock | 8 | specifier is an array of zero, one or more cells identifying the clock |
| 9 | output on a device. The length of a clock specifier is defined by the | 9 | output on a device. The length of a clock specifier is defined by the |
| 10 | value of a #clock-cells property in the clock provider node. | 10 | value of a #clock-cells property in the clock provider node. |
| 11 | 11 | ||
diff --git a/Documentation/devicetree/bindings/clock/corenet-clock.txt b/Documentation/devicetree/bindings/clock/corenet-clock.txt new file mode 100644 index 000000000000..24711af48e30 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/corenet-clock.txt | |||
| @@ -0,0 +1,134 @@ | |||
| 1 | * Clock Block on Freescale CoreNet Platforms | ||
| 2 | |||
| 3 | Freescale CoreNet chips take primary clocking input from the external | ||
| 4 | SYSCLK signal. The SYSCLK input (frequency) is multiplied using | ||
| 5 | multiple phase locked loops (PLL) to create a variety of frequencies | ||
| 6 | which can then be passed to a variety of internal logic, including | ||
| 7 | cores and peripheral IP blocks. | ||
| 8 | Please refer to the Reference Manual for details. | ||
| 9 | |||
| 10 | 1. Clock Block Binding | ||
| 11 | |||
| 12 | Required properties: | ||
| 13 | - compatible: Should contain a specific clock block compatible string | ||
| 14 | and a single chassis clock compatible string. | ||
| 15 | Clock block strings include, but not limited to, one of the: | ||
| 16 | * "fsl,p2041-clockgen" | ||
| 17 | * "fsl,p3041-clockgen" | ||
| 18 | * "fsl,p4080-clockgen" | ||
| 19 | * "fsl,p5020-clockgen" | ||
| 20 | * "fsl,p5040-clockgen" | ||
| 21 | * "fsl,t4240-clockgen" | ||
| 22 | * "fsl,b4420-clockgen" | ||
| 23 | * "fsl,b4860-clockgen" | ||
| 24 | Chassis clock strings include: | ||
| 25 | * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks | ||
| 26 | * "fsl,qoriq-clockgen-2.0": for chassis 2.0 clocks | ||
| 27 | - reg: Describes the address of the device's resources within the | ||
| 28 | address space defined by its parent bus, and resource zero | ||
| 29 | represents the clock register set | ||
| 30 | - clock-frequency: Input system clock frequency | ||
| 31 | |||
| 32 | Recommended properties: | ||
| 33 | - ranges: Allows valid translation between child's address space and | ||
| 34 | parent's. Must be present if the device has sub-nodes. | ||
| 35 | - #address-cells: Specifies the number of cells used to represent | ||
| 36 | physical base addresses. Must be present if the device has | ||
| 37 | sub-nodes and set to 1 if present | ||
| 38 | - #size-cells: Specifies the number of cells used to represent | ||
| 39 | the size of an address. Must be present if the device has | ||
| 40 | sub-nodes and set to 1 if present | ||
| 41 | |||
| 42 | 2. Clock Provider/Consumer Binding | ||
| 43 | |||
| 44 | Most of the bindings are from the common clock binding[1]. | ||
| 45 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 46 | |||
| 47 | Required properties: | ||
| 48 | - compatible : Should include one of the following: | ||
| 49 | * "fsl,qoriq-core-pll-1.0" for core PLL clocks (v1.0) | ||
| 50 | * "fsl,qoriq-core-pll-2.0" for core PLL clocks (v2.0) | ||
| 51 | * "fsl,qoriq-core-mux-1.0" for core mux clocks (v1.0) | ||
| 52 | * "fsl,qoriq-core-mux-2.0" for core mux clocks (v2.0) | ||
| 53 | * "fsl,qoriq-sysclk-1.0": for input system clock (v1.0). | ||
| 54 | It takes parent's clock-frequency as its clock. | ||
| 55 | * "fsl,qoriq-sysclk-2.0": for input system clock (v2.0). | ||
| 56 | It takes parent's clock-frequency as its clock. | ||
| 57 | - #clock-cells: From common clock binding. The number of cells in a | ||
| 58 | clock-specifier. Should be <0> for "fsl,qoriq-sysclk-[1,2].0" | ||
| 59 | clocks, or <1> for "fsl,qoriq-core-pll-[1,2].0" clocks. | ||
| 60 | For "fsl,qoriq-core-pll-[1,2].0" clocks, the single | ||
| 61 | clock-specifier cell may take the following values: | ||
| 62 | * 0 - equal to the PLL frequency | ||
| 63 | * 1 - equal to the PLL frequency divided by 2 | ||
| 64 | * 2 - equal to the PLL frequency divided by 4 | ||
| 65 | |||
| 66 | Recommended properties: | ||
| 67 | - clocks: Should be the phandle of input parent clock | ||
| 68 | - clock-names: From common clock binding, indicates the clock name | ||
| 69 | - clock-output-names: From common clock binding, indicates the names of | ||
| 70 | output clocks | ||
| 71 | - reg: Should be the offset and length of clock block base address. | ||
| 72 | The length should be 4. | ||
| 73 | |||
| 74 | Example for clock block and clock provider: | ||
| 75 | / { | ||
| 76 | clockgen: global-utilities@e1000 { | ||
| 77 | compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0"; | ||
| 78 | ranges = <0x0 0xe1000 0x1000>; | ||
| 79 | clock-frequency = <133333333>; | ||
| 80 | reg = <0xe1000 0x1000>; | ||
| 81 | #address-cells = <1>; | ||
| 82 | #size-cells = <1>; | ||
| 83 | |||
| 84 | sysclk: sysclk { | ||
| 85 | #clock-cells = <0>; | ||
| 86 | compatible = "fsl,qoriq-sysclk-1.0"; | ||
| 87 | clock-output-names = "sysclk"; | ||
| 88 | } | ||
| 89 | |||
| 90 | pll0: pll0@800 { | ||
| 91 | #clock-cells = <1>; | ||
| 92 | reg = <0x800 0x4>; | ||
| 93 | compatible = "fsl,qoriq-core-pll-1.0"; | ||
| 94 | clocks = <&sysclk>; | ||
| 95 | clock-output-names = "pll0", "pll0-div2"; | ||
| 96 | }; | ||
| 97 | |||
| 98 | pll1: pll1@820 { | ||
| 99 | #clock-cells = <1>; | ||
| 100 | reg = <0x820 0x4>; | ||
| 101 | compatible = "fsl,qoriq-core-pll-1.0"; | ||
| 102 | clocks = <&sysclk>; | ||
| 103 | clock-output-names = "pll1", "pll1-div2"; | ||
| 104 | }; | ||
| 105 | |||
| 106 | mux0: mux0@0 { | ||
| 107 | #clock-cells = <0>; | ||
| 108 | reg = <0x0 0x4>; | ||
| 109 | compatible = "fsl,qoriq-core-mux-1.0"; | ||
| 110 | clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; | ||
| 111 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | ||
| 112 | clock-output-names = "cmux0"; | ||
| 113 | }; | ||
| 114 | |||
| 115 | mux1: mux1@20 { | ||
| 116 | #clock-cells = <0>; | ||
| 117 | reg = <0x20 0x4>; | ||
| 118 | compatible = "fsl,qoriq-core-mux-1.0"; | ||
| 119 | clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; | ||
| 120 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | ||
| 121 | clock-output-names = "cmux1"; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | } | ||
| 125 | |||
| 126 | Example for clock consumer: | ||
| 127 | |||
| 128 | / { | ||
| 129 | cpu0: PowerPC,e5500@0 { | ||
| 130 | ... | ||
| 131 | clocks = <&mux0>; | ||
| 132 | ... | ||
| 133 | }; | ||
| 134 | } | ||
diff --git a/Documentation/devicetree/bindings/clock/emev2-clock.txt b/Documentation/devicetree/bindings/clock/emev2-clock.txt new file mode 100644 index 000000000000..60bbb1a8c69a --- /dev/null +++ b/Documentation/devicetree/bindings/clock/emev2-clock.txt | |||
| @@ -0,0 +1,98 @@ | |||
| 1 | Device tree Clock bindings for Renesas EMMA Mobile EV2 | ||
| 2 | |||
| 3 | This binding uses the common clock binding. | ||
| 4 | |||
| 5 | * SMU | ||
| 6 | System Management Unit described in user's manual R19UH0037EJ1000_SMU. | ||
| 7 | This is not a clock provider, but clocks under SMU depend on it. | ||
| 8 | |||
| 9 | Required properties: | ||
| 10 | - compatible: Should be "renesas,emev2-smu" | ||
| 11 | - reg: Address and Size of SMU registers | ||
| 12 | |||
| 13 | * SMU_CLKDIV | ||
| 14 | Function block with an input mux and a divider, which corresponds to | ||
| 15 | "Serial clock generator" in fig."Clock System Overview" of the manual, | ||
| 16 | and "xxx frequency division setting register" (XXXCLKDIV) registers. | ||
| 17 | This makes internal (neither input nor output) clock that is provided | ||
| 18 | to input of xxxGCLK block. | ||
| 19 | |||
| 20 | Required properties: | ||
| 21 | - compatible: Should be "renesas,emev2-smu-clkdiv" | ||
| 22 | - reg: Byte offset from SMU base and Bit position in the register | ||
| 23 | - clocks: Parent clocks. Input clocks as described in clock-bindings.txt | ||
| 24 | - #clock-cells: Should be <0> | ||
| 25 | |||
| 26 | * SMU_GCLK | ||
| 27 | Clock gating node shown as "Clock stop processing block" in the | ||
| 28 | fig."Clock System Overview" of the manual. | ||
| 29 | Registers are "xxx clock gate control register" (XXXGCLKCTRL). | ||
| 30 | |||
| 31 | Required properties: | ||
| 32 | - compatible: Should be "renesas,emev2-smu-gclk" | ||
| 33 | - reg: Byte offset from SMU base and Bit position in the register | ||
| 34 | - clocks: Input clock as described in clock-bindings.txt | ||
| 35 | - #clock-cells: Should be <0> | ||
| 36 | |||
| 37 | Example of provider: | ||
| 38 | |||
| 39 | usia_u0_sclkdiv: usia_u0_sclkdiv { | ||
| 40 | compatible = "renesas,emev2-smu-clkdiv"; | ||
| 41 | reg = <0x610 0>; | ||
| 42 | clocks = <&pll3_fo>, <&pll4_fo>, <&pll1_fo>, <&osc1_fo>; | ||
| 43 | #clock-cells = <0>; | ||
| 44 | }; | ||
| 45 | |||
| 46 | usia_u0_sclk: usia_u0_sclk { | ||
| 47 | compatible = "renesas,emev2-smu-gclk"; | ||
| 48 | reg = <0x4a0 1>; | ||
| 49 | clocks = <&usia_u0_sclkdiv>; | ||
| 50 | #clock-cells = <0>; | ||
| 51 | }; | ||
| 52 | |||
| 53 | Example of consumer: | ||
| 54 | |||
| 55 | uart@e1020000 { | ||
| 56 | compatible = "renesas,em-uart"; | ||
| 57 | reg = <0xe1020000 0x38>; | ||
| 58 | interrupts = <0 8 0>; | ||
| 59 | clocks = <&usia_u0_sclk>; | ||
| 60 | clock-names = "sclk"; | ||
| 61 | }; | ||
| 62 | |||
| 63 | Example of clock-tree description: | ||
| 64 | |||
| 65 | This describes a clock path in the clock tree | ||
| 66 | c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk | ||
| 67 | |||
| 68 | smu@e0110000 { | ||
| 69 | compatible = "renesas,emev2-smu"; | ||
| 70 | reg = <0xe0110000 0x10000>; | ||
| 71 | #address-cells = <2>; | ||
| 72 | #size-cells = <0>; | ||
| 73 | |||
| 74 | c32ki: c32ki { | ||
| 75 | compatible = "fixed-clock"; | ||
| 76 | clock-frequency = <32768>; | ||
| 77 | #clock-cells = <0>; | ||
| 78 | }; | ||
| 79 | pll3_fo: pll3_fo { | ||
| 80 | compatible = "fixed-factor-clock"; | ||
| 81 | clocks = <&c32ki>; | ||
| 82 | clock-div = <1>; | ||
| 83 | clock-mult = <7000>; | ||
| 84 | #clock-cells = <0>; | ||
| 85 | }; | ||
| 86 | usia_u0_sclkdiv: usia_u0_sclkdiv { | ||
| 87 | compatible = "renesas,emev2-smu-clkdiv"; | ||
| 88 | reg = <0x610 0>; | ||
| 89 | clocks = <&pll3_fo>; | ||
| 90 | #clock-cells = <0>; | ||
| 91 | }; | ||
| 92 | usia_u0_sclk: usia_u0_sclk { | ||
| 93 | compatible = "renesas,emev2-smu-gclk"; | ||
| 94 | reg = <0x4a0 1>; | ||
| 95 | clocks = <&usia_u0_sclkdiv>; | ||
| 96 | #clock-cells = <0>; | ||
| 97 | }; | ||
| 98 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt index 0f2f920e8734..72ce617dea82 100644 --- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt | |||
| @@ -62,6 +62,7 @@ clock which they consume. | |||
| 62 | div_i2s1 157 | 62 | div_i2s1 157 |
| 63 | div_i2s2 158 | 63 | div_i2s2 158 |
| 64 | sclk_hdmiphy 159 | 64 | sclk_hdmiphy 159 |
| 65 | div_pcm0 160 | ||
| 65 | 66 | ||
| 66 | 67 | ||
| 67 | [Peripheral Clock Gates] | 68 | [Peripheral Clock Gates] |
diff --git a/Documentation/devicetree/bindings/clock/fixed-clock.txt b/Documentation/devicetree/bindings/clock/fixed-clock.txt index 0b1fe7824093..48ea0ad8ad46 100644 --- a/Documentation/devicetree/bindings/clock/fixed-clock.txt +++ b/Documentation/devicetree/bindings/clock/fixed-clock.txt | |||
| @@ -10,6 +10,8 @@ Required properties: | |||
| 10 | - clock-frequency : frequency of clock in Hz. Should be a single cell. | 10 | - clock-frequency : frequency of clock in Hz. Should be a single cell. |
| 11 | 11 | ||
| 12 | Optional properties: | 12 | Optional properties: |
| 13 | - clock-accuracy : accuracy of clock in ppb (parts per billion). | ||
| 14 | Should be a single cell. | ||
| 13 | - gpios : From common gpio binding; gpio connection to clock enable pin. | 15 | - gpios : From common gpio binding; gpio connection to clock enable pin. |
| 14 | - clock-output-names : From common clock binding. | 16 | - clock-output-names : From common clock binding. |
| 15 | 17 | ||
| @@ -18,4 +20,5 @@ Example: | |||
| 18 | compatible = "fixed-clock"; | 20 | compatible = "fixed-clock"; |
| 19 | #clock-cells = <0>; | 21 | #clock-cells = <0>; |
| 20 | clock-frequency = <1000000000>; | 22 | clock-frequency = <1000000000>; |
| 23 | clock-accuracy = <100>; | ||
| 21 | }; | 24 | }; |
diff --git a/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt b/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt index 5757f9abfc26..1bae8527eb9b 100644 --- a/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt +++ b/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt | |||
| @@ -19,6 +19,6 @@ Example: | |||
| 19 | compatible = "fixed-factor-clock"; | 19 | compatible = "fixed-factor-clock"; |
| 20 | clocks = <&parentclk>; | 20 | clocks = <&parentclk>; |
| 21 | #clock-cells = <0>; | 21 | #clock-cells = <0>; |
| 22 | div = <2>; | 22 | clock-div = <2>; |
| 23 | mult = <1>; | 23 | clock-mult = <1>; |
| 24 | }; | 24 | }; |
diff --git a/Documentation/devicetree/bindings/clock/hi3620-clock.txt b/Documentation/devicetree/bindings/clock/hi3620-clock.txt new file mode 100644 index 000000000000..4b71ab41be53 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/hi3620-clock.txt | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | * Hisilicon Hi3620 Clock Controller | ||
| 2 | |||
| 3 | The Hi3620 clock controller generates and supplies clock to various | ||
| 4 | controllers within the Hi3620 SoC. | ||
| 5 | |||
| 6 | Required Properties: | ||
| 7 | |||
| 8 | - compatible: should be one of the following. | ||
| 9 | - "hisilicon,hi3620-clock" - controller compatible with Hi3620 SoC. | ||
| 10 | |||
| 11 | - reg: physical base address of the controller and length of memory mapped | ||
| 12 | region. | ||
| 13 | |||
| 14 | - #clock-cells: should be 1. | ||
| 15 | |||
| 16 | Each clock is assigned an identifier and client nodes use this identifier | ||
| 17 | to specify the clock which they consume. | ||
| 18 | |||
| 19 | All these identifier could be found in <dt-bindings/clock/hi3620-clock.h>. | ||
diff --git a/Documentation/devicetree/bindings/clock/imx35-clock.txt b/Documentation/devicetree/bindings/clock/imx35-clock.txt new file mode 100644 index 000000000000..a70356452a82 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/imx35-clock.txt | |||
| @@ -0,0 +1,113 @@ | |||
| 1 | * Clock bindings for Freescale i.MX35 | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "fsl,imx35-ccm" | ||
| 5 | - reg: Address and length of the register set | ||
| 6 | - interrupts: Should contain CCM interrupt | ||
| 7 | - #clock-cells: Should be <1> | ||
| 8 | |||
| 9 | The clock consumer should specify the desired clock by having the clock | ||
| 10 | ID in its "clocks" phandle cell. The following is a full list of i.MX35 | ||
| 11 | clocks and IDs. | ||
| 12 | |||
| 13 | Clock ID | ||
| 14 | --------------------------- | ||
| 15 | ckih 0 | ||
| 16 | mpll 1 | ||
| 17 | ppll 2 | ||
| 18 | mpll_075 3 | ||
| 19 | arm 4 | ||
| 20 | hsp 5 | ||
| 21 | hsp_div 6 | ||
| 22 | hsp_sel 7 | ||
| 23 | ahb 8 | ||
| 24 | ipg 9 | ||
| 25 | arm_per_div 10 | ||
| 26 | ahb_per_div 11 | ||
| 27 | ipg_per 12 | ||
| 28 | uart_sel 13 | ||
| 29 | uart_div 14 | ||
| 30 | esdhc_sel 15 | ||
| 31 | esdhc1_div 16 | ||
| 32 | esdhc2_div 17 | ||
| 33 | esdhc3_div 18 | ||
| 34 | spdif_sel 19 | ||
| 35 | spdif_div_pre 20 | ||
| 36 | spdif_div_post 21 | ||
| 37 | ssi_sel 22 | ||
| 38 | ssi1_div_pre 23 | ||
| 39 | ssi1_div_post 24 | ||
| 40 | ssi2_div_pre 25 | ||
| 41 | ssi2_div_post 26 | ||
| 42 | usb_sel 27 | ||
| 43 | usb_div 28 | ||
| 44 | nfc_div 29 | ||
| 45 | asrc_gate 30 | ||
| 46 | pata_gate 31 | ||
| 47 | audmux_gate 32 | ||
| 48 | can1_gate 33 | ||
| 49 | can2_gate 34 | ||
| 50 | cspi1_gate 35 | ||
| 51 | cspi2_gate 36 | ||
| 52 | ect_gate 37 | ||
| 53 | edio_gate 38 | ||
| 54 | emi_gate 39 | ||
| 55 | epit1_gate 40 | ||
| 56 | epit2_gate 41 | ||
| 57 | esai_gate 42 | ||
| 58 | esdhc1_gate 43 | ||
| 59 | esdhc2_gate 44 | ||
| 60 | esdhc3_gate 45 | ||
| 61 | fec_gate 46 | ||
| 62 | gpio1_gate 47 | ||
| 63 | gpio2_gate 48 | ||
| 64 | gpio3_gate 49 | ||
| 65 | gpt_gate 50 | ||
| 66 | i2c1_gate 51 | ||
| 67 | i2c2_gate 52 | ||
| 68 | i2c3_gate 53 | ||
| 69 | iomuxc_gate 54 | ||
| 70 | ipu_gate 55 | ||
| 71 | kpp_gate 56 | ||
| 72 | mlb_gate 57 | ||
| 73 | mshc_gate 58 | ||
| 74 | owire_gate 59 | ||
| 75 | pwm_gate 60 | ||
| 76 | rngc_gate 61 | ||
| 77 | rtc_gate 62 | ||
| 78 | rtic_gate 63 | ||
| 79 | scc_gate 64 | ||
| 80 | sdma_gate 65 | ||
| 81 | spba_gate 66 | ||
| 82 | spdif_gate 67 | ||
| 83 | ssi1_gate 68 | ||
| 84 | ssi2_gate 69 | ||
| 85 | uart1_gate 70 | ||
| 86 | uart2_gate 71 | ||
| 87 | uart3_gate 72 | ||
| 88 | usbotg_gate 73 | ||
| 89 | wdog_gate 74 | ||
| 90 | max_gate 75 | ||
| 91 | admux_gate 76 | ||
| 92 | csi_gate 77 | ||
| 93 | csi_div 78 | ||
| 94 | csi_sel 79 | ||
| 95 | iim_gate 80 | ||
| 96 | gpu2d_gate 81 | ||
| 97 | |||
| 98 | Examples: | ||
| 99 | |||
| 100 | clks: ccm@53f80000 { | ||
| 101 | compatible = "fsl,imx35-ccm"; | ||
| 102 | reg = <0x53f80000 0x4000>; | ||
| 103 | interrupts = <31>; | ||
| 104 | #clock-cells = <1>; | ||
| 105 | }; | ||
| 106 | |||
| 107 | esdhc1: esdhc@53fb4000 { | ||
| 108 | compatible = "fsl,imx35-esdhc"; | ||
| 109 | reg = <0x53fb4000 0x4000>; | ||
| 110 | interrupts = <7>; | ||
| 111 | clocks = <&clks 9>, <&clks 8>, <&clks 43>; | ||
| 112 | clock-names = "ipg", "ahb", "per"; | ||
| 113 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/imx5-clock.txt b/Documentation/devicetree/bindings/clock/imx5-clock.txt index 4c029a8739d3..cadc4d29ada6 100644 --- a/Documentation/devicetree/bindings/clock/imx5-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx5-clock.txt | |||
| @@ -7,197 +7,8 @@ Required properties: | |||
| 7 | - #clock-cells: Should be <1> | 7 | - #clock-cells: Should be <1> |
| 8 | 8 | ||
| 9 | The clock consumer should specify the desired clock by having the clock | 9 | The clock consumer should specify the desired clock by having the clock |
| 10 | ID in its "clocks" phandle cell. The following is a full list of i.MX5 | 10 | ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx5-clock.h |
| 11 | clocks and IDs. | 11 | for the full list of i.MX5 clock IDs. |
| 12 | |||
| 13 | Clock ID | ||
| 14 | --------------------------- | ||
| 15 | dummy 0 | ||
| 16 | ckil 1 | ||
| 17 | osc 2 | ||
| 18 | ckih1 3 | ||
| 19 | ckih2 4 | ||
| 20 | ahb 5 | ||
| 21 | ipg 6 | ||
| 22 | axi_a 7 | ||
| 23 | axi_b 8 | ||
| 24 | uart_pred 9 | ||
| 25 | uart_root 10 | ||
| 26 | esdhc_a_pred 11 | ||
| 27 | esdhc_b_pred 12 | ||
| 28 | esdhc_c_s 13 | ||
| 29 | esdhc_d_s 14 | ||
| 30 | emi_sel 15 | ||
| 31 | emi_slow_podf 16 | ||
| 32 | nfc_podf 17 | ||
| 33 | ecspi_pred 18 | ||
| 34 | ecspi_podf 19 | ||
| 35 | usboh3_pred 20 | ||
| 36 | usboh3_podf 21 | ||
| 37 | usb_phy_pred 22 | ||
| 38 | usb_phy_podf 23 | ||
| 39 | cpu_podf 24 | ||
| 40 | di_pred 25 | ||
| 41 | tve_s 27 | ||
| 42 | uart1_ipg_gate 28 | ||
| 43 | uart1_per_gate 29 | ||
| 44 | uart2_ipg_gate 30 | ||
| 45 | uart2_per_gate 31 | ||
| 46 | uart3_ipg_gate 32 | ||
| 47 | uart3_per_gate 33 | ||
| 48 | i2c1_gate 34 | ||
| 49 | i2c2_gate 35 | ||
| 50 | gpt_ipg_gate 36 | ||
| 51 | pwm1_ipg_gate 37 | ||
| 52 | pwm1_hf_gate 38 | ||
| 53 | pwm2_ipg_gate 39 | ||
| 54 | pwm2_hf_gate 40 | ||
| 55 | gpt_hf_gate 41 | ||
| 56 | fec_gate 42 | ||
| 57 | usboh3_per_gate 43 | ||
| 58 | esdhc1_ipg_gate 44 | ||
| 59 | esdhc2_ipg_gate 45 | ||
| 60 | esdhc3_ipg_gate 46 | ||
| 61 | esdhc4_ipg_gate 47 | ||
| 62 | ssi1_ipg_gate 48 | ||
| 63 | ssi2_ipg_gate 49 | ||
| 64 | ssi3_ipg_gate 50 | ||
| 65 | ecspi1_ipg_gate 51 | ||
| 66 | ecspi1_per_gate 52 | ||
| 67 | ecspi2_ipg_gate 53 | ||
| 68 | ecspi2_per_gate 54 | ||
| 69 | cspi_ipg_gate 55 | ||
| 70 | sdma_gate 56 | ||
| 71 | emi_slow_gate 57 | ||
| 72 | ipu_s 58 | ||
| 73 | ipu_gate 59 | ||
| 74 | nfc_gate 60 | ||
| 75 | ipu_di1_gate 61 | ||
| 76 | vpu_s 62 | ||
| 77 | vpu_gate 63 | ||
| 78 | vpu_reference_gate 64 | ||
| 79 | uart4_ipg_gate 65 | ||
| 80 | uart4_per_gate 66 | ||
| 81 | uart5_ipg_gate 67 | ||
| 82 | uart5_per_gate 68 | ||
| 83 | tve_gate 69 | ||
| 84 | tve_pred 70 | ||
| 85 | esdhc1_per_gate 71 | ||
| 86 | esdhc2_per_gate 72 | ||
| 87 | esdhc3_per_gate 73 | ||
| 88 | esdhc4_per_gate 74 | ||
| 89 | usb_phy_gate 75 | ||
| 90 | hsi2c_gate 76 | ||
| 91 | mipi_hsc1_gate 77 | ||
| 92 | mipi_hsc2_gate 78 | ||
| 93 | mipi_esc_gate 79 | ||
| 94 | mipi_hsp_gate 80 | ||
| 95 | ldb_di1_div_3_5 81 | ||
| 96 | ldb_di1_div 82 | ||
| 97 | ldb_di0_div_3_5 83 | ||
| 98 | ldb_di0_div 84 | ||
| 99 | ldb_di1_gate 85 | ||
| 100 | can2_serial_gate 86 | ||
| 101 | can2_ipg_gate 87 | ||
| 102 | i2c3_gate 88 | ||
| 103 | lp_apm 89 | ||
| 104 | periph_apm 90 | ||
| 105 | main_bus 91 | ||
| 106 | ahb_max 92 | ||
| 107 | aips_tz1 93 | ||
| 108 | aips_tz2 94 | ||
| 109 | tmax1 95 | ||
| 110 | tmax2 96 | ||
| 111 | tmax3 97 | ||
| 112 | spba 98 | ||
| 113 | uart_sel 99 | ||
| 114 | esdhc_a_sel 100 | ||
| 115 | esdhc_b_sel 101 | ||
| 116 | esdhc_a_podf 102 | ||
| 117 | esdhc_b_podf 103 | ||
| 118 | ecspi_sel 104 | ||
| 119 | usboh3_sel 105 | ||
| 120 | usb_phy_sel 106 | ||
| 121 | iim_gate 107 | ||
| 122 | usboh3_gate 108 | ||
| 123 | emi_fast_gate 109 | ||
| 124 | ipu_di0_gate 110 | ||
| 125 | gpc_dvfs 111 | ||
| 126 | pll1_sw 112 | ||
| 127 | pll2_sw 113 | ||
| 128 | pll3_sw 114 | ||
| 129 | ipu_di0_sel 115 | ||
| 130 | ipu_di1_sel 116 | ||
| 131 | tve_ext_sel 117 | ||
| 132 | mx51_mipi 118 | ||
| 133 | pll4_sw 119 | ||
| 134 | ldb_di1_sel 120 | ||
| 135 | di_pll4_podf 121 | ||
| 136 | ldb_di0_sel 122 | ||
| 137 | ldb_di0_gate 123 | ||
| 138 | usb_phy1_gate 124 | ||
| 139 | usb_phy2_gate 125 | ||
| 140 | per_lp_apm 126 | ||
| 141 | per_pred1 127 | ||
| 142 | per_pred2 128 | ||
| 143 | per_podf 129 | ||
| 144 | per_root 130 | ||
| 145 | ssi_apm 131 | ||
| 146 | ssi1_root_sel 132 | ||
| 147 | ssi2_root_sel 133 | ||
| 148 | ssi3_root_sel 134 | ||
| 149 | ssi_ext1_sel 135 | ||
| 150 | ssi_ext2_sel 136 | ||
| 151 | ssi_ext1_com_sel 137 | ||
| 152 | ssi_ext2_com_sel 138 | ||
| 153 | ssi1_root_pred 139 | ||
| 154 | ssi1_root_podf 140 | ||
| 155 | ssi2_root_pred 141 | ||
| 156 | ssi2_root_podf 142 | ||
| 157 | ssi_ext1_pred 143 | ||
| 158 | ssi_ext1_podf 144 | ||
| 159 | ssi_ext2_pred 145 | ||
| 160 | ssi_ext2_podf 146 | ||
| 161 | ssi1_root_gate 147 | ||
| 162 | ssi2_root_gate 148 | ||
| 163 | ssi3_root_gate 149 | ||
| 164 | ssi_ext1_gate 150 | ||
| 165 | ssi_ext2_gate 151 | ||
| 166 | epit1_ipg_gate 152 | ||
| 167 | epit1_hf_gate 153 | ||
| 168 | epit2_ipg_gate 154 | ||
| 169 | epit2_hf_gate 155 | ||
| 170 | can_sel 156 | ||
| 171 | can1_serial_gate 157 | ||
| 172 | can1_ipg_gate 158 | ||
| 173 | owire_gate 159 | ||
| 174 | gpu3d_s 160 | ||
| 175 | gpu2d_s 161 | ||
| 176 | gpu3d_gate 162 | ||
| 177 | gpu2d_gate 163 | ||
| 178 | garb_gate 164 | ||
| 179 | cko1_sel 165 | ||
| 180 | cko1_podf 166 | ||
| 181 | cko1 167 | ||
| 182 | cko2_sel 168 | ||
| 183 | cko2_podf 169 | ||
| 184 | cko2 170 | ||
| 185 | srtc_gate 171 | ||
| 186 | pata_gate 172 | ||
| 187 | sata_gate 173 | ||
| 188 | spdif_xtal_sel 174 | ||
| 189 | spdif0_sel 175 | ||
| 190 | spdif1_sel 176 | ||
| 191 | spdif0_pred 177 | ||
| 192 | spdif0_podf 178 | ||
| 193 | spdif1_pred 179 | ||
| 194 | spdif1_podf 180 | ||
| 195 | spdif0_com_sel 181 | ||
| 196 | spdif1_com_sel 182 | ||
| 197 | spdif0_gate 183 | ||
| 198 | spdif1_gate 184 | ||
| 199 | spdif_ipg_gate 185 | ||
| 200 | ocram 186 | ||
| 201 | 12 | ||
| 202 | Examples (for mx53): | 13 | Examples (for mx53): |
| 203 | 14 | ||
| @@ -212,7 +23,7 @@ can1: can@53fc8000 { | |||
| 212 | compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; | 23 | compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; |
| 213 | reg = <0x53fc8000 0x4000>; | 24 | reg = <0x53fc8000 0x4000>; |
| 214 | interrupts = <82>; | 25 | interrupts = <82>; |
| 215 | clocks = <&clks 158>, <&clks 157>; | 26 | clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>; |
| 216 | clock-names = "ipg", "per"; | 27 | clock-names = "ipg", "per"; |
| 217 | status = "disabled"; | 28 | status = "disabled"; |
| 218 | }; | 29 | }; |
diff --git a/Documentation/devicetree/bindings/clock/keystone-pll.txt b/Documentation/devicetree/bindings/clock/keystone-pll.txt index 12bd72605a31..225990f79b7c 100644 --- a/Documentation/devicetree/bindings/clock/keystone-pll.txt +++ b/Documentation/devicetree/bindings/clock/keystone-pll.txt | |||
| @@ -17,13 +17,14 @@ Required properties: | |||
| 17 | - reg - pll control0 and pll multipler registers | 17 | - reg - pll control0 and pll multipler registers |
| 18 | - reg-names : control and multiplier. The multiplier is applicable only for | 18 | - reg-names : control and multiplier. The multiplier is applicable only for |
| 19 | main pll clock | 19 | main pll clock |
| 20 | - fixed-postdiv : fixed post divider value | 20 | - fixed-postdiv : fixed post divider value. If absent, use clkod register bits |
| 21 | for postdiv | ||
| 21 | 22 | ||
| 22 | Example: | 23 | Example: |
| 23 | mainpllclk: mainpllclk@2310110 { | 24 | mainpllclk: mainpllclk@2310110 { |
| 24 | #clock-cells = <0>; | 25 | #clock-cells = <0>; |
| 25 | compatible = "ti,keystone,main-pll-clock"; | 26 | compatible = "ti,keystone,main-pll-clock"; |
| 26 | clocks = <&refclkmain>; | 27 | clocks = <&refclksys>; |
| 27 | reg = <0x02620350 4>, <0x02310110 4>; | 28 | reg = <0x02620350 4>, <0x02310110 4>; |
| 28 | reg-names = "control", "multiplier"; | 29 | reg-names = "control", "multiplier"; |
| 29 | fixed-postdiv = <2>; | 30 | fixed-postdiv = <2>; |
| @@ -32,11 +33,10 @@ Example: | |||
| 32 | papllclk: papllclk@2620358 { | 33 | papllclk: papllclk@2620358 { |
| 33 | #clock-cells = <0>; | 34 | #clock-cells = <0>; |
| 34 | compatible = "ti,keystone,pll-clock"; | 35 | compatible = "ti,keystone,pll-clock"; |
| 35 | clocks = <&refclkmain>; | 36 | clocks = <&refclkpass>; |
| 36 | clock-output-names = "pa-pll-clk"; | 37 | clock-output-names = "pa-pll-clk"; |
| 37 | reg = <0x02620358 4>; | 38 | reg = <0x02620358 4>; |
| 38 | reg-names = "control"; | 39 | reg-names = "control"; |
| 39 | fixed-postdiv = <6>; | ||
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | Required properties: | 42 | Required properties: |
diff --git a/Documentation/devicetree/bindings/clock/maxim,max77686.txt b/Documentation/devicetree/bindings/clock/maxim,max77686.txt new file mode 100644 index 000000000000..96ce71bbd745 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/maxim,max77686.txt | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | Binding for Maxim MAX77686 32k clock generator block | ||
| 2 | |||
| 3 | This is a part of device tree bindings of MAX77686 multi-function device. | ||
| 4 | More information can be found in bindings/mfd/max77686.txt file. | ||
| 5 | |||
| 6 | The MAX77686 contains three 32.768khz clock outputs that can be controlled | ||
| 7 | (gated/ungated) over I2C. | ||
| 8 | |||
| 9 | Following properties should be presend in main device node of the MFD chip. | ||
| 10 | |||
| 11 | Required properties: | ||
| 12 | - #clock-cells: simple one-cell clock specifier format is used, where the | ||
| 13 | only cell is used as an index of the clock inside the provider. Following | ||
| 14 | indices are allowed: | ||
| 15 | - 0: 32khz_ap clock, | ||
| 16 | - 1: 32khz_cp clock, | ||
| 17 | - 2: 32khz_pmic clock. | ||
| 18 | |||
| 19 | Example: Node of the MFD chip | ||
| 20 | |||
| 21 | max77686: max77686@09 { | ||
| 22 | compatible = "maxim,max77686"; | ||
| 23 | interrupt-parent = <&wakeup_eint>; | ||
| 24 | interrupts = <26 0>; | ||
| 25 | reg = <0x09>; | ||
| 26 | #clock-cells = <1>; | ||
| 27 | |||
| 28 | /* ... */ | ||
| 29 | }; | ||
| 30 | |||
| 31 | Example: Clock consumer node | ||
| 32 | |||
| 33 | foo@0 { | ||
| 34 | compatible = "bar,foo"; | ||
| 35 | /* ... */ | ||
| 36 | clock-names = "my-clock"; | ||
| 37 | clocks = <&max77686 2>; | ||
| 38 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt index 0c80c2677104..9acea9d93160 100644 --- a/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt | |||
| @@ -15,6 +15,9 @@ Required properties : | |||
| 15 | In clock consumers, this cell represents the clock ID exposed by the | 15 | In clock consumers, this cell represents the clock ID exposed by the |
| 16 | CAR. The assignments may be found in header file | 16 | CAR. The assignments may be found in header file |
| 17 | <dt-bindings/clock/tegra114-car.h>. | 17 | <dt-bindings/clock/tegra114-car.h>. |
| 18 | - #reset-cells : Should be 1. | ||
| 19 | In clock consumers, this cell represents the bit number in the CAR's | ||
| 20 | array of CLK_RST_CONTROLLER_RST_DEVICES_* registers. | ||
| 18 | 21 | ||
| 19 | Example SoC include file: | 22 | Example SoC include file: |
| 20 | 23 | ||
| @@ -23,6 +26,7 @@ Example SoC include file: | |||
| 23 | compatible = "nvidia,tegra114-car"; | 26 | compatible = "nvidia,tegra114-car"; |
| 24 | reg = <0x60006000 0x1000>; | 27 | reg = <0x60006000 0x1000>; |
| 25 | #clock-cells = <1>; | 28 | #clock-cells = <1>; |
| 29 | #reset-cells = <1>; | ||
| 26 | }; | 30 | }; |
| 27 | 31 | ||
| 28 | usb@c5004000 { | 32 | usb@c5004000 { |
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt new file mode 100644 index 000000000000..ded5d6212c84 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | NVIDIA Tegra124 Clock And Reset Controller | ||
| 2 | |||
| 3 | This binding uses the common clock binding: | ||
| 4 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 5 | |||
| 6 | The CAR (Clock And Reset) Controller on Tegra is the HW module responsible | ||
| 7 | for muxing and gating Tegra's clocks, and setting their rates. | ||
| 8 | |||
| 9 | Required properties : | ||
| 10 | - compatible : Should be "nvidia,tegra124-car" | ||
| 11 | - reg : Should contain CAR registers location and length | ||
| 12 | - clocks : Should contain phandle and clock specifiers for two clocks: | ||
| 13 | the 32 KHz "32k_in", and the board-specific oscillator "osc". | ||
| 14 | - #clock-cells : Should be 1. | ||
| 15 | In clock consumers, this cell represents the clock ID exposed by the | ||
| 16 | CAR. The assignments may be found in header file | ||
| 17 | <dt-bindings/clock/tegra124-car.h>. | ||
| 18 | - #reset-cells : Should be 1. | ||
| 19 | In clock consumers, this cell represents the bit number in the CAR's | ||
| 20 | array of CLK_RST_CONTROLLER_RST_DEVICES_* registers. | ||
| 21 | |||
| 22 | Example SoC include file: | ||
| 23 | |||
| 24 | / { | ||
| 25 | tegra_car: clock { | ||
| 26 | compatible = "nvidia,tegra124-car"; | ||
| 27 | reg = <0x60006000 0x1000>; | ||
| 28 | #clock-cells = <1>; | ||
| 29 | #reset-cells = <1>; | ||
| 30 | }; | ||
| 31 | |||
| 32 | usb@c5004000 { | ||
| 33 | clocks = <&tegra_car TEGRA124_CLK_USB2>; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 37 | Example board file: | ||
| 38 | |||
| 39 | / { | ||
| 40 | clocks { | ||
| 41 | compatible = "simple-bus"; | ||
| 42 | #address-cells = <1>; | ||
| 43 | #size-cells = <0>; | ||
| 44 | |||
| 45 | osc: clock@0 { | ||
| 46 | compatible = "fixed-clock"; | ||
| 47 | reg = <0>; | ||
| 48 | #clock-cells = <0>; | ||
| 49 | clock-frequency = <112400000>; | ||
| 50 | }; | ||
| 51 | |||
| 52 | clk_32k: clock@1 { | ||
| 53 | compatible = "fixed-clock"; | ||
| 54 | reg = <1>; | ||
| 55 | #clock-cells = <0>; | ||
| 56 | clock-frequency = <32768>; | ||
| 57 | }; | ||
| 58 | }; | ||
| 59 | |||
| 60 | &tegra_car { | ||
| 61 | clocks = <&clk_32k> <&osc>; | ||
| 62 | }; | ||
| 63 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt index fcfed5bf73fb..6c5901b503d0 100644 --- a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt | |||
| @@ -15,6 +15,9 @@ Required properties : | |||
| 15 | In clock consumers, this cell represents the clock ID exposed by the | 15 | In clock consumers, this cell represents the clock ID exposed by the |
| 16 | CAR. The assignments may be found in header file | 16 | CAR. The assignments may be found in header file |
| 17 | <dt-bindings/clock/tegra20-car.h>. | 17 | <dt-bindings/clock/tegra20-car.h>. |
| 18 | - #reset-cells : Should be 1. | ||
| 19 | In clock consumers, this cell represents the bit number in the CAR's | ||
| 20 | array of CLK_RST_CONTROLLER_RST_DEVICES_* registers. | ||
| 18 | 21 | ||
| 19 | Example SoC include file: | 22 | Example SoC include file: |
| 20 | 23 | ||
| @@ -23,6 +26,7 @@ Example SoC include file: | |||
| 23 | compatible = "nvidia,tegra20-car"; | 26 | compatible = "nvidia,tegra20-car"; |
| 24 | reg = <0x60006000 0x1000>; | 27 | reg = <0x60006000 0x1000>; |
| 25 | #clock-cells = <1>; | 28 | #clock-cells = <1>; |
| 29 | #reset-cells = <1>; | ||
| 26 | }; | 30 | }; |
| 27 | 31 | ||
| 28 | usb@c5004000 { | 32 | usb@c5004000 { |
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt index 0f714081e986..63618cde12df 100644 --- a/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt | |||
| @@ -15,6 +15,9 @@ Required properties : | |||
| 15 | In clock consumers, this cell represents the clock ID exposed by the | 15 | In clock consumers, this cell represents the clock ID exposed by the |
| 16 | CAR. The assignments may be found in header file | 16 | CAR. The assignments may be found in header file |
| 17 | <dt-bindings/clock/tegra30-car.h>. | 17 | <dt-bindings/clock/tegra30-car.h>. |
| 18 | - #reset-cells : Should be 1. | ||
| 19 | In clock consumers, this cell represents the bit number in the CAR's | ||
| 20 | array of CLK_RST_CONTROLLER_RST_DEVICES_* registers. | ||
| 18 | 21 | ||
| 19 | Example SoC include file: | 22 | Example SoC include file: |
| 20 | 23 | ||
| @@ -23,6 +26,7 @@ Example SoC include file: | |||
| 23 | compatible = "nvidia,tegra30-car"; | 26 | compatible = "nvidia,tegra30-car"; |
| 24 | reg = <0x60006000 0x1000>; | 27 | reg = <0x60006000 0x1000>; |
| 25 | #clock-cells = <1>; | 28 | #clock-cells = <1>; |
| 29 | #reset-cells = <1>; | ||
| 26 | }; | 30 | }; |
| 27 | 31 | ||
| 28 | usb@c5004000 { | 32 | usb@c5004000 { |
diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.txt b/Documentation/devicetree/bindings/clock/qcom,gcc.txt new file mode 100644 index 000000000000..767401f42871 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.txt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | Qualcomm Global Clock & Reset Controller Binding | ||
| 2 | ------------------------------------------------ | ||
| 3 | |||
| 4 | Required properties : | ||
| 5 | - compatible : shall contain only one of the following: | ||
| 6 | |||
| 7 | "qcom,gcc-msm8660" | ||
| 8 | "qcom,gcc-msm8960" | ||
| 9 | "qcom,gcc-msm8974" | ||
| 10 | |||
| 11 | - reg : shall contain base register location and length | ||
| 12 | - #clock-cells : shall contain 1 | ||
| 13 | - #reset-cells : shall contain 1 | ||
| 14 | |||
| 15 | Example: | ||
| 16 | clock-controller@900000 { | ||
| 17 | compatible = "qcom,gcc-msm8960"; | ||
| 18 | reg = <0x900000 0x4000>; | ||
| 19 | #clock-cells = <1>; | ||
| 20 | #reset-cells = <1>; | ||
| 21 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/qcom,mmcc.txt b/Documentation/devicetree/bindings/clock/qcom,mmcc.txt new file mode 100644 index 000000000000..d572e9964c54 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,mmcc.txt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | Qualcomm Multimedia Clock & Reset Controller Binding | ||
| 2 | ---------------------------------------------------- | ||
| 3 | |||
| 4 | Required properties : | ||
| 5 | - compatible : shall contain only one of the following: | ||
| 6 | |||
| 7 | "qcom,mmcc-msm8660" | ||
| 8 | "qcom,mmcc-msm8960" | ||
| 9 | "qcom,mmcc-msm8974" | ||
| 10 | |||
| 11 | - reg : shall contain base register location and length | ||
| 12 | - #clock-cells : shall contain 1 | ||
| 13 | - #reset-cells : shall contain 1 | ||
| 14 | |||
| 15 | Example: | ||
| 16 | clock-controller@4000000 { | ||
| 17 | compatible = "qcom,mmcc-msm8960"; | ||
| 18 | reg = <0x4000000 0x1000>; | ||
| 19 | #clock-cells = <1>; | ||
| 20 | #reset-cells = <1>; | ||
| 21 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt new file mode 100644 index 000000000000..952e373178d2 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | * Renesas CPG DIV6 Clock | ||
| 2 | |||
| 3 | The CPG DIV6 clocks are variable factor clocks provided by the Clock Pulse | ||
| 4 | Generator (CPG). They clock input is divided by a configurable factor from 1 | ||
| 5 | to 64. | ||
| 6 | |||
| 7 | Required Properties: | ||
| 8 | |||
| 9 | - compatible: Must be one of the following | ||
| 10 | - "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks | ||
| 11 | - "renesas,r8a7791-div6-clock" for R8A7791 (R-Car M2) DIV6 clocks | ||
| 12 | - "renesas,cpg-div6-clock" for generic DIV6 clocks | ||
| 13 | - reg: Base address and length of the memory resource used by the DIV6 clock | ||
| 14 | - clocks: Reference to the parent clock | ||
| 15 | - #clock-cells: Must be 0 | ||
| 16 | - clock-output-names: The name of the clock as a free-form string | ||
| 17 | |||
| 18 | |||
| 19 | Example | ||
| 20 | ------- | ||
| 21 | |||
| 22 | sd2_clk: sd2_clk@e6150078 { | ||
| 23 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 24 | reg = <0 0xe6150078 0 4>; | ||
| 25 | clocks = <&pll1_div2_clk>; | ||
| 26 | #clock-cells = <0>; | ||
| 27 | clock-output-names = "sd2"; | ||
| 28 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt new file mode 100644 index 000000000000..5992dceec7af --- /dev/null +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | * Renesas CPG Module Stop (MSTP) Clocks | ||
| 2 | |||
| 3 | The CPG can gate SoC device clocks. The gates are organized in groups of up to | ||
| 4 | 32 gates. | ||
| 5 | |||
| 6 | This device tree binding describes a single 32 gate clocks group per node. | ||
| 7 | Clocks are referenced by user nodes by the MSTP node phandle and the clock | ||
| 8 | index in the group, from 0 to 31. | ||
| 9 | |||
| 10 | Required Properties: | ||
| 11 | |||
| 12 | - compatible: Must be one of the following | ||
| 13 | - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks | ||
| 14 | - "renesas,r8a7791-mstp-clocks" for R8A7791 (R-Car M2) MSTP gate clocks | ||
| 15 | - "renesas,cpg-mstp-clock" for generic MSTP gate clocks | ||
| 16 | - reg: Base address and length of the I/O mapped registers used by the MSTP | ||
| 17 | clocks. The first register is the clock control register and is mandatory. | ||
| 18 | The second register is the clock status register and is optional when not | ||
| 19 | implemented in hardware. | ||
| 20 | - clocks: Reference to the parent clocks, one per output clock. The parents | ||
| 21 | must appear in the same order as the output clocks. | ||
| 22 | - #clock-cells: Must be 1 | ||
| 23 | - clock-output-names: The name of the clocks as free-form strings | ||
| 24 | - renesas,clock-indices: Indices of the gate clocks into the group (0 to 31) | ||
| 25 | |||
| 26 | The clocks, clock-output-names and renesas,clock-indices properties contain one | ||
| 27 | entry per gate clock. The MSTP groups are sparsely populated. Unimplemented | ||
| 28 | gate clocks must not be declared. | ||
| 29 | |||
| 30 | |||
| 31 | Example | ||
| 32 | ------- | ||
| 33 | |||
| 34 | #include <dt-bindings/clock/r8a7790-clock.h> | ||
| 35 | |||
| 36 | mstp3_clks: mstp3_clks@e615013c { | ||
| 37 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 38 | reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; | ||
| 39 | clocks = <&cp_clk>, <&mmc1_clk>, <&sd3_clk>, <&sd2_clk>, | ||
| 40 | <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, | ||
| 41 | <&mmc0_clk>; | ||
| 42 | #clock-cells = <1>; | ||
| 43 | clock-output-names = | ||
| 44 | "tpu0", "mmcif1", "sdhi3", "sdhi2", | ||
| 45 | "sdhi1", "sdhi0", "mmcif0"; | ||
| 46 | renesas,clock-indices = < | ||
| 47 | R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3 | ||
| 48 | R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 | ||
| 49 | R8A7790_CLK_MMCIF0 | ||
| 50 | >; | ||
| 51 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt new file mode 100644 index 000000000000..7b41c2fe54db --- /dev/null +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | * Renesas R-Car Gen2 Clock Pulse Generator (CPG) | ||
| 2 | |||
| 3 | The CPG generates core clocks for the R-Car Gen2 SoCs. It includes three PLLs | ||
| 4 | and several fixed ratio dividers. | ||
| 5 | |||
| 6 | Required Properties: | ||
| 7 | |||
| 8 | - compatible: Must be one of | ||
| 9 | - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG | ||
| 10 | - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG | ||
| 11 | - "renesas,rcar-gen2-cpg-clocks" for the generic R-Car Gen2 CPG | ||
| 12 | |||
| 13 | - reg: Base address and length of the memory resource used by the CPG | ||
| 14 | |||
| 15 | - clocks: Reference to the parent clock | ||
| 16 | - #clock-cells: Must be 1 | ||
| 17 | - clock-output-names: The names of the clocks. Supported clocks are "main", | ||
| 18 | "pll0", "pll1", "pll3", "lb", "qspi", "sdh", "sd0", "sd1" and "z" | ||
| 19 | |||
| 20 | |||
| 21 | Example | ||
| 22 | ------- | ||
| 23 | |||
| 24 | cpg_clocks: cpg_clocks@e6150000 { | ||
| 25 | compatible = "renesas,r8a7790-cpg-clocks", | ||
| 26 | "renesas,rcar-gen2-cpg-clocks"; | ||
| 27 | reg = <0 0xe6150000 0 0x1000>; | ||
| 28 | clocks = <&extal_clk>; | ||
| 29 | #clock-cells = <1>; | ||
| 30 | clock-output-names = "main", "pll0, "pll1", "pll3", | ||
| 31 | "lb", "qspi", "sdh", "sd0", "sd1", "z"; | ||
| 32 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/silabs,si570.txt b/Documentation/devicetree/bindings/clock/silabs,si570.txt new file mode 100644 index 000000000000..c09f21e1d98f --- /dev/null +++ b/Documentation/devicetree/bindings/clock/silabs,si570.txt | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | Binding for Silicon Labs 570, 571, 598 and 599 programmable | ||
| 2 | I2C clock generators. | ||
| 3 | |||
| 4 | Reference | ||
| 5 | This binding uses the common clock binding[1]. Details about the devices can be | ||
| 6 | found in the data sheets[2][3]. | ||
| 7 | |||
| 8 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 9 | [2] Si570/571 Data Sheet | ||
| 10 | http://www.silabs.com/Support%20Documents/TechnicalDocs/si570.pdf | ||
| 11 | [3] Si598/599 Data Sheet | ||
| 12 | http://www.silabs.com/Support%20Documents/TechnicalDocs/si598-99.pdf | ||
| 13 | |||
| 14 | Required properties: | ||
| 15 | - compatible: Shall be one of "silabs,si570", "silabs,si571", | ||
| 16 | "silabs,si598", "silabs,si599" | ||
| 17 | - reg: I2C device address. | ||
| 18 | - #clock-cells: From common clock bindings: Shall be 0. | ||
| 19 | - factory-fout: Factory set default frequency. This frequency is part specific. | ||
| 20 | The correct frequency for the part used has to be provided in | ||
| 21 | order to generate the correct output frequencies. For more | ||
| 22 | details, please refer to the data sheet. | ||
| 23 | - temperature-stability: Temperature stability of the device in PPM. Should be | ||
| 24 | one of: 7, 20, 50 or 100. | ||
| 25 | |||
| 26 | Optional properties: | ||
| 27 | - clock-output-names: From common clock bindings. Recommended to be "si570". | ||
| 28 | - clock-frequency: Output frequency to generate. This defines the output | ||
| 29 | frequency set during boot. It can be reprogrammed during | ||
| 30 | runtime through the common clock framework. | ||
| 31 | |||
| 32 | Example: | ||
| 33 | si570: clock-generator@5d { | ||
| 34 | #clock-cells = <0>; | ||
| 35 | compatible = "silabs,si570"; | ||
| 36 | temperature-stability = <50>; | ||
| 37 | reg = <0x5d>; | ||
| 38 | factory-fout = <156250000>; | ||
| 39 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt index 91a748fed13d..c2cb7621ad2d 100644 --- a/Documentation/devicetree/bindings/clock/sunxi.txt +++ b/Documentation/devicetree/bindings/clock/sunxi.txt | |||
| @@ -7,8 +7,10 @@ This binding uses the common clock binding[1]. | |||
| 7 | Required properties: | 7 | 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 and PLL4 |
| 11 | "allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31 | 11 | "allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31 |
| 12 | "allwinner,sun4i-pll5-clk" - for the PLL5 clock | ||
| 13 | "allwinner,sun4i-pll6-clk" - for the PLL6 clock | ||
| 12 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock | 14 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock |
| 13 | "allwinner,sun4i-axi-clk" - for the AXI clock | 15 | "allwinner,sun4i-axi-clk" - for the AXI clock |
| 14 | "allwinner,sun4i-axi-gates-clk" - for the AXI gates | 16 | "allwinner,sun4i-axi-gates-clk" - for the AXI gates |
| @@ -33,10 +35,14 @@ Required properties: | |||
| 33 | "allwinner,sun7i-a20-apb1-gates-clk" - for the APB1 gates on A20 | 35 | "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 | 36 | "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 | 37 | "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31 |
| 38 | "allwinner,sun4i-mod0-clk" - for the module 0 family of clocks | ||
| 39 | "allwinner,sun7i-a20-out-clk" - for the external output clocks | ||
| 36 | 40 | ||
| 37 | Required properties for all clocks: | 41 | Required properties for all clocks: |
| 38 | - reg : shall be the control register address for the clock. | 42 | - reg : shall be the control register address for the clock. |
| 39 | - clocks : shall be the input parent clock(s) phandle for the clock | 43 | - clocks : shall be the input parent clock(s) phandle for the clock. For |
| 44 | multiplexed clocks, the list order must match the hardware | ||
| 45 | programming order. | ||
| 40 | - #clock-cells : from common clock binding; shall be set to 0 except for | 46 | - #clock-cells : from common clock binding; shall be set to 0 except for |
| 41 | "allwinner,*-gates-clk" where it shall be set to 1 | 47 | "allwinner,*-gates-clk" where it shall be set to 1 |
| 42 | 48 | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/apll.txt b/Documentation/devicetree/bindings/clock/ti/apll.txt new file mode 100644 index 000000000000..7faf5a68b3be --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/apll.txt | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | Binding for Texas Instruments APLL clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. It assumes a | ||
| 6 | register-mapped APLL with usually two selectable input clocks | ||
| 7 | (reference clock and bypass clock), with analog phase locked | ||
| 8 | loop logic for multiplying the input clock to a desired output | ||
| 9 | clock. This clock also typically supports different operation | ||
| 10 | modes (locked, low power stop etc.) APLL mostly behaves like | ||
| 11 | a subtype of a DPLL [2], although a simplified one at that. | ||
| 12 | |||
| 13 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 14 | [2] Documentation/devicetree/bindings/clock/ti/dpll.txt | ||
| 15 | |||
| 16 | Required properties: | ||
| 17 | - compatible : shall be "ti,dra7-apll-clock" | ||
| 18 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 19 | - clocks : link phandles of parent clocks (clk-ref and clk-bypass) | ||
| 20 | - reg : address and length of the register set for controlling the APLL. | ||
| 21 | It contains the information of registers in the following order: | ||
| 22 | "control" - contains the control register base address | ||
| 23 | "idlest" - contains the idlest register base address | ||
| 24 | |||
| 25 | Examples: | ||
| 26 | apll_pcie_ck: apll_pcie_ck@4a008200 { | ||
| 27 | #clock-cells = <0>; | ||
| 28 | clocks = <&apll_pcie_in_clk_mux>, <&dpll_pcie_ref_ck>; | ||
| 29 | reg = <0x4a00821c 0x4>, <0x4a008220 0x4>; | ||
| 30 | compatible = "ti,dra7-apll-clock"; | ||
| 31 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/autoidle.txt b/Documentation/devicetree/bindings/clock/ti/autoidle.txt new file mode 100644 index 000000000000..7c735dde9fe9 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/autoidle.txt | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | Binding for Texas Instruments autoidle clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. It assumes a register mapped | ||
| 6 | clock which can be put to idle automatically by hardware based on the usage | ||
| 7 | and a configuration bit setting. Autoidle clock is never an individual | ||
| 8 | clock, it is always a derivative of some basic clock like a gate, divider, | ||
| 9 | or fixed-factor. | ||
| 10 | |||
| 11 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 12 | |||
| 13 | Required properties: | ||
| 14 | - reg : offset for the register controlling the autoidle | ||
| 15 | - ti,autoidle-shift : bit shift of the autoidle enable bit | ||
| 16 | - ti,invert-autoidle-bit : autoidle is enabled by setting the bit to 0 | ||
| 17 | |||
| 18 | Examples: | ||
| 19 | dpll_core_m4_ck: dpll_core_m4_ck { | ||
| 20 | #clock-cells = <0>; | ||
| 21 | compatible = "ti,divider-clock"; | ||
| 22 | clocks = <&dpll_core_x2_ck>; | ||
| 23 | ti,max-div = <31>; | ||
| 24 | ti,autoidle-shift = <8>; | ||
| 25 | reg = <0x2d38>; | ||
| 26 | ti,index-starts-at-one; | ||
| 27 | ti,invert-autoidle-bit; | ||
| 28 | }; | ||
| 29 | |||
| 30 | dpll_usb_clkdcoldo_ck: dpll_usb_clkdcoldo_ck { | ||
| 31 | #clock-cells = <0>; | ||
| 32 | compatible = "ti,fixed-factor-clock"; | ||
| 33 | clocks = <&dpll_usb_ck>; | ||
| 34 | ti,clock-div = <1>; | ||
| 35 | ti,autoidle-shift = <8>; | ||
| 36 | reg = <0x01b4>; | ||
| 37 | ti,clock-mult = <1>; | ||
| 38 | ti,invert-autoidle-bit; | ||
| 39 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/clockdomain.txt b/Documentation/devicetree/bindings/clock/ti/clockdomain.txt new file mode 100644 index 000000000000..cb76b3f2b341 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/clockdomain.txt | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | Binding for Texas Instruments clockdomain. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1] in consumer role. | ||
| 6 | Every clock on TI SoC belongs to one clockdomain, but software | ||
| 7 | only needs this information for specific clocks which require | ||
| 8 | their parent clockdomain to be controlled when the clock is | ||
| 9 | enabled/disabled. This binding doesn't define a new clock | ||
| 10 | binding type, it is used to group existing clock nodes under | ||
| 11 | hardware hierarchy. | ||
| 12 | |||
| 13 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 14 | |||
| 15 | Required properties: | ||
| 16 | - compatible : shall be "ti,clockdomain" | ||
| 17 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 18 | - clocks : link phandles of clocks within this domain | ||
| 19 | |||
| 20 | Examples: | ||
| 21 | dss_clkdm: dss_clkdm { | ||
| 22 | compatible = "ti,clockdomain"; | ||
| 23 | clocks = <&dss1_alwon_fck_3430es2>, <&dss_ick_3430es2>; | ||
| 24 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/composite.txt b/Documentation/devicetree/bindings/clock/ti/composite.txt new file mode 100644 index 000000000000..5f43c4706b09 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/composite.txt | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | Binding for TI composite clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. It assumes a | ||
| 6 | register-mapped composite clock with multiple different sub-types; | ||
| 7 | |||
| 8 | a multiplexer clock with multiple input clock signals or parents, one | ||
| 9 | of which can be selected as output, this behaves exactly as [2] | ||
| 10 | |||
| 11 | an adjustable clock rate divider, this behaves exactly as [3] | ||
| 12 | |||
| 13 | a gating function which can be used to enable and disable the output | ||
| 14 | clock, this behaves exactly as [4] | ||
| 15 | |||
| 16 | The binding must provide a list of the component clocks that shall be | ||
| 17 | merged to this clock. The component clocks shall be of one of the | ||
| 18 | "ti,*composite*-clock" types. | ||
| 19 | |||
| 20 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 21 | [2] Documentation/devicetree/bindings/clock/ti/mux.txt | ||
| 22 | [3] Documentation/devicetree/bindings/clock/ti/divider.txt | ||
| 23 | [4] Documentation/devicetree/bindings/clock/ti/gate.txt | ||
| 24 | |||
| 25 | Required properties: | ||
| 26 | - compatible : shall be: "ti,composite-clock" | ||
| 27 | - clocks : link phandles of component clocks | ||
| 28 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 29 | |||
| 30 | Examples: | ||
| 31 | |||
| 32 | usb_l4_gate_ick: usb_l4_gate_ick { | ||
| 33 | #clock-cells = <0>; | ||
| 34 | compatible = "ti,composite-interface-clock"; | ||
| 35 | clocks = <&l4_ick>; | ||
| 36 | ti,bit-shift = <5>; | ||
| 37 | reg = <0x0a10>; | ||
| 38 | }; | ||
| 39 | |||
| 40 | usb_l4_div_ick: usb_l4_div_ick { | ||
| 41 | #clock-cells = <0>; | ||
| 42 | compatible = "ti,composite-divider-clock"; | ||
| 43 | clocks = <&l4_ick>; | ||
| 44 | ti,bit-shift = <4>; | ||
| 45 | ti,max-div = <1>; | ||
| 46 | reg = <0x0a40>; | ||
| 47 | ti,index-starts-at-one; | ||
| 48 | }; | ||
| 49 | |||
| 50 | usb_l4_ick: usb_l4_ick { | ||
| 51 | #clock-cells = <0>; | ||
| 52 | compatible = "ti,composite-clock"; | ||
| 53 | clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>; | ||
| 54 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/divider.txt b/Documentation/devicetree/bindings/clock/ti/divider.txt new file mode 100644 index 000000000000..35a6f5c7e5c2 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/divider.txt | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | Binding for TI divider clock | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. It assumes a | ||
| 6 | register-mapped adjustable clock rate divider that does not gate and has | ||
| 7 | only one input clock or parent. By default the value programmed into | ||
| 8 | the register is one less than the actual divisor value. E.g: | ||
| 9 | |||
| 10 | register value actual divisor value | ||
| 11 | 0 1 | ||
| 12 | 1 2 | ||
| 13 | 2 3 | ||
| 14 | |||
| 15 | This assumption may be modified by the following optional properties: | ||
| 16 | |||
| 17 | ti,index-starts-at-one - valid divisor values start at 1, not the default | ||
| 18 | of 0. E.g: | ||
| 19 | register value actual divisor value | ||
| 20 | 1 1 | ||
| 21 | 2 2 | ||
| 22 | 3 3 | ||
| 23 | |||
| 24 | ti,index-power-of-two - valid divisor values are powers of two. E.g: | ||
| 25 | register value actual divisor value | ||
| 26 | 0 1 | ||
| 27 | 1 2 | ||
| 28 | 2 4 | ||
| 29 | |||
| 30 | Additionally an array of valid dividers may be supplied like so: | ||
| 31 | |||
| 32 | ti,dividers = <4>, <8>, <0>, <16>; | ||
| 33 | |||
| 34 | Which will map the resulting values to a divisor table by their index: | ||
| 35 | register value actual divisor value | ||
| 36 | 0 4 | ||
| 37 | 1 8 | ||
| 38 | 2 <invalid divisor, skipped> | ||
| 39 | 3 16 | ||
| 40 | |||
| 41 | Any zero value in this array means the corresponding bit-value is invalid | ||
| 42 | and must not be used. | ||
| 43 | |||
| 44 | The binding must also provide the register to control the divider and | ||
| 45 | unless the divider array is provided, min and max dividers. Optionally | ||
| 46 | the number of bits to shift that mask, if necessary. If the shift value | ||
| 47 | is missing it is the same as supplying a zero shift. | ||
| 48 | |||
| 49 | This binding can also optionally provide support to the hardware autoidle | ||
| 50 | feature, see [2]. | ||
| 51 | |||
| 52 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 53 | [2] Documentation/devicetree/bindings/clock/ti/autoidle.txt | ||
| 54 | |||
| 55 | Required properties: | ||
| 56 | - compatible : shall be "ti,divider-clock" or "ti,composite-divider-clock". | ||
| 57 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 58 | - clocks : link to phandle of parent clock | ||
| 59 | - reg : offset for register controlling adjustable divider | ||
| 60 | |||
| 61 | Optional properties: | ||
| 62 | - clock-output-names : from common clock binding. | ||
| 63 | - ti,dividers : array of integers defining divisors | ||
| 64 | - ti,bit-shift : number of bits to shift the divider value, defaults to 0 | ||
| 65 | - ti,min-div : min divisor for dividing the input clock rate, only | ||
| 66 | needed if the first divisor is offset from the default value (1) | ||
| 67 | - ti,max-div : max divisor for dividing the input clock rate, only needed | ||
| 68 | if ti,dividers is not defined. | ||
| 69 | - ti,index-starts-at-one : valid divisor programming starts at 1, not zero, | ||
| 70 | only valid if ti,dividers is not defined. | ||
| 71 | - ti,index-power-of-two : valid divisor programming must be a power of two, | ||
| 72 | only valid if ti,dividers is not defined. | ||
| 73 | - ti,autoidle-shift : bit shift of the autoidle enable bit for the clock, | ||
| 74 | see [2] | ||
| 75 | - ti,invert-autoidle-bit : autoidle is enabled by setting the bit to 0, | ||
| 76 | see [2] | ||
| 77 | - ti,set-rate-parent : clk_set_rate is propagated to parent | ||
| 78 | |||
| 79 | Examples: | ||
| 80 | dpll_usb_m2_ck: dpll_usb_m2_ck@4a008190 { | ||
| 81 | #clock-cells = <0>; | ||
| 82 | compatible = "ti,divider-clock"; | ||
| 83 | clocks = <&dpll_usb_ck>; | ||
| 84 | ti,max-div = <127>; | ||
| 85 | reg = <0x190>; | ||
| 86 | ti,index-starts-at-one; | ||
| 87 | }; | ||
| 88 | |||
| 89 | aess_fclk: aess_fclk@4a004528 { | ||
| 90 | #clock-cells = <0>; | ||
| 91 | compatible = "ti,divider-clock"; | ||
| 92 | clocks = <&abe_clk>; | ||
| 93 | ti,bit-shift = <24>; | ||
| 94 | reg = <0x528>; | ||
| 95 | ti,max-div = <2>; | ||
| 96 | }; | ||
| 97 | |||
| 98 | dpll_core_m3x2_div_ck: dpll_core_m3x2_div_ck { | ||
| 99 | #clock-cells = <0>; | ||
| 100 | compatible = "ti,composite-divider-clock"; | ||
| 101 | clocks = <&dpll_core_x2_ck>; | ||
| 102 | ti,max-div = <31>; | ||
| 103 | reg = <0x0134>; | ||
| 104 | ti,index-starts-at-one; | ||
| 105 | }; | ||
| 106 | |||
| 107 | ssi_ssr_div_fck_3430es2: ssi_ssr_div_fck_3430es2 { | ||
| 108 | #clock-cells = <0>; | ||
| 109 | compatible = "ti,composite-divider-clock"; | ||
| 110 | clocks = <&corex2_fck>; | ||
| 111 | ti,bit-shift = <8>; | ||
| 112 | reg = <0x0a40>; | ||
| 113 | ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>; | ||
| 114 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/dpll.txt b/Documentation/devicetree/bindings/clock/ti/dpll.txt new file mode 100644 index 000000000000..30bfdb7c9f18 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/dpll.txt | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | Binding for Texas Instruments DPLL clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. It assumes a | ||
| 6 | register-mapped DPLL with usually two selectable input clocks | ||
| 7 | (reference clock and bypass clock), with digital phase locked | ||
| 8 | loop logic for multiplying the input clock to a desired output | ||
| 9 | clock. This clock also typically supports different operation | ||
| 10 | modes (locked, low power stop etc.) This binding has several | ||
| 11 | sub-types, which effectively result in slightly different setup | ||
| 12 | for the actual DPLL clock. | ||
| 13 | |||
| 14 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 15 | |||
| 16 | Required properties: | ||
| 17 | - compatible : shall be one of: | ||
| 18 | "ti,omap3-dpll-clock", | ||
| 19 | "ti,omap3-dpll-core-clock", | ||
| 20 | "ti,omap3-dpll-per-clock", | ||
| 21 | "ti,omap3-dpll-per-j-type-clock", | ||
| 22 | "ti,omap4-dpll-clock", | ||
| 23 | "ti,omap4-dpll-x2-clock", | ||
| 24 | "ti,omap4-dpll-core-clock", | ||
| 25 | "ti,omap4-dpll-m4xen-clock", | ||
| 26 | "ti,omap4-dpll-j-type-clock", | ||
| 27 | "ti,am3-dpll-no-gate-clock", | ||
| 28 | "ti,am3-dpll-j-type-clock", | ||
| 29 | "ti,am3-dpll-no-gate-j-type-clock", | ||
| 30 | "ti,am3-dpll-clock", | ||
| 31 | "ti,am3-dpll-core-clock", | ||
| 32 | "ti,am3-dpll-x2-clock", | ||
| 33 | |||
| 34 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 35 | - clocks : link phandles of parent clocks, first entry lists reference clock | ||
| 36 | and second entry bypass clock | ||
| 37 | - reg : offsets for the register set for controlling the DPLL. | ||
| 38 | Registers are listed in following order: | ||
| 39 | "control" - contains the control register base address | ||
| 40 | "idlest" - contains the idle status register base address | ||
| 41 | "mult-div1" - contains the multiplier / divider register base address | ||
| 42 | "autoidle" - contains the autoidle register base address (optional) | ||
| 43 | ti,am3-* dpll types do not have autoidle register | ||
| 44 | |||
| 45 | Optional properties: | ||
| 46 | - DPLL mode setting - defining any one or more of the following overrides | ||
| 47 | default setting. | ||
| 48 | - ti,low-power-stop : DPLL supports low power stop mode, gating output | ||
| 49 | - ti,low-power-bypass : DPLL output matches rate of parent bypass clock | ||
| 50 | - ti,lock : DPLL locks in programmed rate | ||
| 51 | |||
| 52 | Examples: | ||
| 53 | dpll_core_ck: dpll_core_ck@44e00490 { | ||
| 54 | #clock-cells = <0>; | ||
| 55 | compatible = "ti,omap4-dpll-core-clock"; | ||
| 56 | clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; | ||
| 57 | reg = <0x490>, <0x45c>, <0x488>, <0x468>; | ||
| 58 | }; | ||
| 59 | |||
| 60 | dpll2_ck: dpll2_ck@48004004 { | ||
| 61 | #clock-cells = <0>; | ||
| 62 | compatible = "ti,omap3-dpll-clock"; | ||
| 63 | clocks = <&sys_ck>, <&dpll2_fck>; | ||
| 64 | ti,low-power-stop; | ||
| 65 | ti,low-power-bypass; | ||
| 66 | ti,lock; | ||
| 67 | reg = <0x4>, <0x24>, <0x34>, <0x40>; | ||
| 68 | }; | ||
| 69 | |||
| 70 | dpll_core_ck: dpll_core_ck@44e00490 { | ||
| 71 | #clock-cells = <0>; | ||
| 72 | compatible = "ti,am3-dpll-core-clock"; | ||
| 73 | clocks = <&sys_clkin_ck>, <&sys_clkin_ck>; | ||
| 74 | reg = <0x90>, <0x5c>, <0x68>; | ||
| 75 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/fixed-factor-clock.txt b/Documentation/devicetree/bindings/clock/ti/fixed-factor-clock.txt new file mode 100644 index 000000000000..662b36d53bf0 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/fixed-factor-clock.txt | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | Binding for TI fixed factor rate clock sources. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1], and also uses the autoidle | ||
| 6 | support from TI autoidle clock [2]. | ||
| 7 | |||
| 8 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 9 | [2] Documentation/devicetree/bindings/clock/ti/autoidle.txt | ||
| 10 | |||
| 11 | Required properties: | ||
| 12 | - compatible : shall be "ti,fixed-factor-clock". | ||
| 13 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 14 | - ti,clock-div: fixed divider. | ||
| 15 | - ti,clock-mult: fixed multiplier. | ||
| 16 | - clocks: parent clock. | ||
| 17 | |||
| 18 | Optional properties: | ||
| 19 | - ti,autoidle-shift: bit shift of the autoidle enable bit for the clock, | ||
| 20 | see [2] | ||
| 21 | - reg: offset for the autoidle register of this clock, see [2] | ||
| 22 | - ti,invert-autoidle-bit: autoidle is enabled by setting the bit to 0, see [2] | ||
| 23 | - ti,set-rate-parent: clk_set_rate is propagated to parent | ||
| 24 | |||
| 25 | Example: | ||
| 26 | clock { | ||
| 27 | compatible = "ti,fixed-factor-clock"; | ||
| 28 | clocks = <&parentclk>; | ||
| 29 | #clock-cells = <0>; | ||
| 30 | ti,clock-div = <2>; | ||
| 31 | ti,clock-mult = <1>; | ||
| 32 | }; | ||
| 33 | |||
| 34 | dpll_usb_clkdcoldo_ck: dpll_usb_clkdcoldo_ck { | ||
| 35 | #clock-cells = <0>; | ||
| 36 | compatible = "ti,fixed-factor-clock"; | ||
| 37 | clocks = <&dpll_usb_ck>; | ||
| 38 | ti,clock-div = <1>; | ||
| 39 | ti,autoidle-shift = <8>; | ||
| 40 | reg = <0x01b4>; | ||
| 41 | ti,clock-mult = <1>; | ||
| 42 | ti,invert-autoidle-bit; | ||
| 43 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/gate.txt b/Documentation/devicetree/bindings/clock/ti/gate.txt new file mode 100644 index 000000000000..125281aaa4ca --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/gate.txt | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | Binding for Texas Instruments gate clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. This clock is | ||
| 6 | quite much similar to the basic gate-clock [2], however, | ||
| 7 | it supports a number of additional features. If no register | ||
| 8 | is provided for this clock, the code assumes that a clockdomain | ||
| 9 | will be controlled instead and the corresponding hw-ops for | ||
| 10 | that is used. | ||
| 11 | |||
| 12 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 13 | [2] Documentation/devicetree/bindings/clock/gate-clock.txt | ||
| 14 | [3] Documentation/devicetree/bindings/clock/ti/clockdomain.txt | ||
| 15 | |||
| 16 | Required properties: | ||
| 17 | - compatible : shall be one of: | ||
| 18 | "ti,gate-clock" - basic gate clock | ||
| 19 | "ti,wait-gate-clock" - gate clock which waits until clock is active before | ||
| 20 | returning from clk_enable() | ||
| 21 | "ti,dss-gate-clock" - gate clock with DSS specific hardware handling | ||
| 22 | "ti,am35xx-gate-clock" - gate clock with AM35xx specific hardware handling | ||
| 23 | "ti,clkdm-gate-clock" - clockdomain gate clock, which derives its functional | ||
| 24 | clock directly from a clockdomain, see [3] how | ||
| 25 | to map clockdomains properly | ||
| 26 | "ti,hsdiv-gate-clock" - gate clock with OMAP36xx specific hardware handling, | ||
| 27 | required for a hardware errata | ||
| 28 | - #clock-cells : from common clock binding; shall be set to 0 | ||
| 29 | - clocks : link to phandle of parent clock | ||
| 30 | - reg : offset for register controlling adjustable gate, not needed for | ||
| 31 | ti,clkdm-gate-clock type | ||
| 32 | |||
| 33 | Optional properties: | ||
| 34 | - ti,bit-shift : bit shift for programming the clock gate, invalid for | ||
| 35 | ti,clkdm-gate-clock type | ||
| 36 | - ti,set-bit-to-disable : inverts default gate programming. Setting the bit | ||
| 37 | gates the clock and clearing the bit ungates the clock. | ||
| 38 | |||
| 39 | Examples: | ||
| 40 | mmchs2_fck: mmchs2_fck@48004a00 { | ||
| 41 | #clock-cells = <0>; | ||
| 42 | compatible = "ti,gate-clock"; | ||
| 43 | clocks = <&core_96m_fck>; | ||
| 44 | reg = <0x48004a00 0x4>; | ||
| 45 | ti,bit-shift = <25>; | ||
| 46 | }; | ||
| 47 | |||
| 48 | uart4_fck_am35xx: uart4_fck_am35xx { | ||
| 49 | #clock-cells = <0>; | ||
| 50 | compatible = "ti,wait-gate-clock"; | ||
| 51 | clocks = <&core_48m_fck>; | ||
| 52 | reg = <0x0a00>; | ||
| 53 | ti,bit-shift = <23>; | ||
| 54 | }; | ||
| 55 | |||
| 56 | dss1_alwon_fck_3430es2: dss1_alwon_fck_3430es2@48004e00 { | ||
| 57 | #clock-cells = <0>; | ||
| 58 | compatible = "ti,dss-gate-clock"; | ||
| 59 | clocks = <&dpll4_m4x2_ck>; | ||
| 60 | reg = <0x48004e00 0x4>; | ||
| 61 | ti,bit-shift = <0>; | ||
| 62 | }; | ||
| 63 | |||
| 64 | emac_ick: emac_ick@4800259c { | ||
| 65 | #clock-cells = <0>; | ||
| 66 | compatible = "ti,am35xx-gate-clock"; | ||
| 67 | clocks = <&ipss_ick>; | ||
| 68 | reg = <0x4800259c 0x4>; | ||
| 69 | ti,bit-shift = <1>; | ||
| 70 | }; | ||
| 71 | |||
| 72 | emu_src_ck: emu_src_ck { | ||
| 73 | #clock-cells = <0>; | ||
| 74 | compatible = "ti,clkdm-gate-clock"; | ||
| 75 | clocks = <&emu_src_mux_ck>; | ||
| 76 | }; | ||
| 77 | |||
| 78 | dpll4_m2x2_ck: dpll4_m2x2_ck@48004d00 { | ||
| 79 | #clock-cells = <0>; | ||
| 80 | compatible = "ti,hsdiv-gate-clock"; | ||
| 81 | clocks = <&dpll4_m2x2_mul_ck>; | ||
| 82 | ti,bit-shift = <0x1b>; | ||
| 83 | reg = <0x48004d00 0x4>; | ||
| 84 | ti,set-bit-to-disable; | ||
| 85 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/interface.txt b/Documentation/devicetree/bindings/clock/ti/interface.txt new file mode 100644 index 000000000000..064e8caccac3 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/interface.txt | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | Binding for Texas Instruments interface clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. This clock is | ||
| 6 | quite much similar to the basic gate-clock [2], however, | ||
| 7 | it supports a number of additional features, including | ||
| 8 | companion clock finding (match corresponding functional gate | ||
| 9 | clock) and hardware autoidle enable / disable. | ||
| 10 | |||
| 11 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 12 | [2] Documentation/devicetree/bindings/clock/gate-clock.txt | ||
| 13 | |||
| 14 | Required properties: | ||
| 15 | - compatible : shall be one of: | ||
| 16 | "ti,omap3-interface-clock" - basic OMAP3 interface clock | ||
| 17 | "ti,omap3-no-wait-interface-clock" - interface clock which has no hardware | ||
| 18 | capability for waiting clock to be ready | ||
| 19 | "ti,omap3-hsotgusb-interface-clock" - interface clock with USB specific HW | ||
| 20 | handling | ||
| 21 | "ti,omap3-dss-interface-clock" - interface clock with DSS specific HW handling | ||
| 22 | "ti,omap3-ssi-interface-clock" - interface clock with SSI specific HW handling | ||
| 23 | "ti,am35xx-interface-clock" - interface clock with AM35xx specific HW handling | ||
| 24 | - #clock-cells : from common clock binding; shall be set to 0 | ||
| 25 | - clocks : link to phandle of parent clock | ||
| 26 | - reg : base address for the control register | ||
| 27 | |||
| 28 | Optional properties: | ||
| 29 | - ti,bit-shift : bit shift for the bit enabling/disabling the clock (default 0) | ||
| 30 | |||
| 31 | Examples: | ||
| 32 | aes1_ick: aes1_ick@48004a14 { | ||
| 33 | #clock-cells = <0>; | ||
| 34 | compatible = "ti,omap3-interface-clock"; | ||
| 35 | clocks = <&security_l4_ick2>; | ||
| 36 | reg = <0x48004a14 0x4>; | ||
| 37 | ti,bit-shift = <3>; | ||
| 38 | }; | ||
| 39 | |||
| 40 | cam_ick: cam_ick@48004f10 { | ||
| 41 | #clock-cells = <0>; | ||
| 42 | compatible = "ti,omap3-no-wait-interface-clock"; | ||
| 43 | clocks = <&l4_ick>; | ||
| 44 | reg = <0x48004f10 0x4>; | ||
| 45 | ti,bit-shift = <0>; | ||
| 46 | }; | ||
| 47 | |||
| 48 | ssi_ick_3430es2: ssi_ick_3430es2@48004a10 { | ||
| 49 | #clock-cells = <0>; | ||
| 50 | compatible = "ti,omap3-ssi-interface-clock"; | ||
| 51 | clocks = <&ssi_l4_ick>; | ||
| 52 | reg = <0x48004a10 0x4>; | ||
| 53 | ti,bit-shift = <0>; | ||
| 54 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/ti/mux.txt b/Documentation/devicetree/bindings/clock/ti/mux.txt new file mode 100644 index 000000000000..2d0d170f8001 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ti/mux.txt | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | Binding for TI mux clock. | ||
| 2 | |||
| 3 | Binding status: Unstable - ABI compatibility may be broken in the future | ||
| 4 | |||
| 5 | This binding uses the common clock binding[1]. It assumes a | ||
| 6 | register-mapped multiplexer with multiple input clock signals or | ||
| 7 | parents, one of which can be selected as output. This clock does not | ||
| 8 | gate or adjust the parent rate via a divider or multiplier. | ||
| 9 | |||
| 10 | By default the "clocks" property lists the parents in the same order | ||
| 11 | as they are programmed into the regster. E.g: | ||
| 12 | |||
| 13 | clocks = <&foo_clock>, <&bar_clock>, <&baz_clock>; | ||
| 14 | |||
| 15 | results in programming the register as follows: | ||
| 16 | |||
| 17 | register value selected parent clock | ||
| 18 | 0 foo_clock | ||
| 19 | 1 bar_clock | ||
| 20 | 2 baz_clock | ||
| 21 | |||
| 22 | Some clock controller IPs do not allow a value of zero to be programmed | ||
| 23 | into the register, instead indexing begins at 1. The optional property | ||
| 24 | "index-starts-at-one" modified the scheme as follows: | ||
| 25 | |||
| 26 | register value selected clock parent | ||
| 27 | 1 foo_clock | ||
| 28 | 2 bar_clock | ||
| 29 | 3 baz_clock | ||
| 30 | |||
| 31 | The binding must provide the register to control the mux. Optionally | ||
| 32 | the number of bits to shift the control field in the register can be | ||
| 33 | supplied. If the shift value is missing it is the same as supplying | ||
| 34 | a zero shift. | ||
| 35 | |||
| 36 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 37 | |||
| 38 | Required properties: | ||
| 39 | - compatible : shall be "ti,mux-clock" or "ti,composite-mux-clock". | ||
| 40 | - #clock-cells : from common clock binding; shall be set to 0. | ||
| 41 | - clocks : link phandles of parent clocks | ||
| 42 | - reg : register offset for register controlling adjustable mux | ||
| 43 | |||
| 44 | Optional properties: | ||
| 45 | - ti,bit-shift : number of bits to shift the bit-mask, defaults to | ||
| 46 | 0 if not present | ||
| 47 | - ti,index-starts-at-one : valid input select programming starts at 1, not | ||
| 48 | zero | ||
| 49 | - ti,set-rate-parent : clk_set_rate is propagated to parent clock, | ||
| 50 | not supported by the composite-mux-clock subtype | ||
| 51 | |||
| 52 | Examples: | ||
| 53 | |||
| 54 | sys_clkin_ck: sys_clkin_ck@4a306110 { | ||
| 55 | #clock-cells = <0>; | ||
| 56 | compatible = "ti,mux-clock"; | ||
| 57 | clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>; | ||
| 58 | reg = <0x0110>; | ||
| 59 | ti,index-starts-at-one; | ||
| 60 | }; | ||
| 61 | |||
| 62 | abe_dpll_bypass_clk_mux_ck: abe_dpll_bypass_clk_mux_ck@4a306108 { | ||
| 63 | #clock-cells = <0>; | ||
| 64 | compatible = "ti,mux-clock"; | ||
| 65 | clocks = <&sys_clkin_ck>, <&sys_32k_ck>; | ||
| 66 | ti,bit-shift = <24>; | ||
| 67 | reg = <0x0108>; | ||
| 68 | }; | ||
| 69 | |||
| 70 | mcbsp5_mux_fck: mcbsp5_mux_fck { | ||
| 71 | #clock-cells = <0>; | ||
| 72 | compatible = "ti,composite-mux-clock"; | ||
| 73 | clocks = <&core_96m_fck>, <&mcbsp_clks>; | ||
| 74 | ti,bit-shift = <4>; | ||
| 75 | reg = <0x02d8>; | ||
| 76 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/zynq-7000.txt b/Documentation/devicetree/bindings/clock/zynq-7000.txt index d99af878f5d7..17b4a94916d6 100644 --- a/Documentation/devicetree/bindings/clock/zynq-7000.txt +++ b/Documentation/devicetree/bindings/clock/zynq-7000.txt | |||
| @@ -22,6 +22,10 @@ Required properties: | |||
| 22 | Optional properties: | 22 | Optional properties: |
| 23 | - clocks : as described in the clock bindings | 23 | - clocks : as described in the clock bindings |
| 24 | - clock-names : as described in the clock bindings | 24 | - clock-names : as described in the clock bindings |
| 25 | - fclk-enable : Bit mask to enable FCLKs statically at boot time. | ||
| 26 | Bit [0..3] correspond to FCLK0..FCLK3. The corresponding | ||
| 27 | FCLK will only be enabled if it is actually running at | ||
| 28 | boot time. | ||
| 25 | 29 | ||
| 26 | Clock inputs: | 30 | Clock inputs: |
| 27 | The following strings are optional parameters to the 'clock-names' property in | 31 | The following strings are optional parameters to the 'clock-names' property in |
diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt index 051f764bedb8..f055515d2b62 100644 --- a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt +++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt | |||
| @@ -15,6 +15,10 @@ Optional properties: | |||
| 15 | - clock-latency: Specify the possible maximum transition latency for clock, | 15 | - clock-latency: Specify the possible maximum transition latency for clock, |
| 16 | in unit of nanoseconds. | 16 | in unit of nanoseconds. |
| 17 | - voltage-tolerance: Specify the CPU voltage tolerance in percentage. | 17 | - voltage-tolerance: Specify the CPU voltage tolerance in percentage. |
| 18 | - #cooling-cells: | ||
| 19 | - cooling-min-level: | ||
| 20 | - cooling-max-level: | ||
| 21 | Please refer to Documentation/devicetree/bindings/thermal/thermal.txt. | ||
| 18 | 22 | ||
| 19 | Examples: | 23 | Examples: |
| 20 | 24 | ||
| @@ -33,6 +37,9 @@ cpus { | |||
| 33 | 198000 850000 | 37 | 198000 850000 |
| 34 | >; | 38 | >; |
| 35 | clock-latency = <61036>; /* two CLK32 periods */ | 39 | clock-latency = <61036>; /* two CLK32 periods */ |
| 40 | #cooling-cells = <2>; | ||
| 41 | cooling-min-level = <0>; | ||
| 42 | cooling-max-level = <2>; | ||
| 36 | }; | 43 | }; |
| 37 | 44 | ||
| 38 | cpu@1 { | 45 | cpu@1 { |
diff --git a/Documentation/devicetree/bindings/crypto/atmel-crypto.txt b/Documentation/devicetree/bindings/crypto/atmel-crypto.txt new file mode 100644 index 000000000000..f2aab3dc2b52 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/atmel-crypto.txt | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | * Atmel HW cryptographic accelerators | ||
| 2 | |||
| 3 | These are the HW cryptographic accelerators found on some Atmel products. | ||
| 4 | |||
| 5 | * Advanced Encryption Standard (AES) | ||
| 6 | |||
| 7 | Required properties: | ||
| 8 | - compatible : Should be "atmel,at91sam9g46-aes". | ||
| 9 | - reg: Should contain AES registers location and length. | ||
| 10 | - interrupts: Should contain the IRQ line for the AES. | ||
| 11 | - dmas: List of two DMA specifiers as described in | ||
| 12 | atmel-dma.txt and dma.txt files. | ||
| 13 | - dma-names: Contains one identifier string for each DMA specifier | ||
| 14 | in the dmas property. | ||
| 15 | |||
| 16 | Example: | ||
| 17 | aes@f8038000 { | ||
| 18 | compatible = "atmel,at91sam9g46-aes"; | ||
| 19 | reg = <0xf8038000 0x100>; | ||
| 20 | interrupts = <43 4 0>; | ||
| 21 | dmas = <&dma1 2 18>, | ||
| 22 | <&dma1 2 19>; | ||
| 23 | dma-names = "tx", "rx"; | ||
| 24 | |||
| 25 | * Triple Data Encryption Standard (Triple DES) | ||
| 26 | |||
| 27 | Required properties: | ||
| 28 | - compatible : Should be "atmel,at91sam9g46-tdes". | ||
| 29 | - reg: Should contain TDES registers location and length. | ||
| 30 | - interrupts: Should contain the IRQ line for the TDES. | ||
| 31 | |||
| 32 | Optional properties: | ||
| 33 | - dmas: List of two DMA specifiers as described in | ||
| 34 | atmel-dma.txt and dma.txt files. | ||
| 35 | - dma-names: Contains one identifier string for each DMA specifier | ||
| 36 | in the dmas property. | ||
| 37 | |||
| 38 | Example: | ||
| 39 | tdes@f803c000 { | ||
| 40 | compatible = "atmel,at91sam9g46-tdes"; | ||
| 41 | reg = <0xf803c000 0x100>; | ||
| 42 | interrupts = <44 4 0>; | ||
| 43 | dmas = <&dma1 2 20>, | ||
| 44 | <&dma1 2 21>; | ||
| 45 | dma-names = "tx", "rx"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | * Secure Hash Algorithm (SHA) | ||
| 49 | |||
| 50 | Required properties: | ||
| 51 | - compatible : Should be "atmel,at91sam9g46-sha". | ||
| 52 | - reg: Should contain SHA registers location and length. | ||
| 53 | - interrupts: Should contain the IRQ line for the SHA. | ||
| 54 | |||
| 55 | Optional properties: | ||
| 56 | - dmas: One DMA specifiers as described in | ||
| 57 | atmel-dma.txt and dma.txt files. | ||
| 58 | - dma-names: Contains one identifier string for each DMA specifier | ||
| 59 | in the dmas property. Only one "tx" string needed. | ||
| 60 | |||
| 61 | Example: | ||
| 62 | sha@f8034000 { | ||
| 63 | compatible = "atmel,at91sam9g46-sha"; | ||
| 64 | reg = <0xf8034000 0x100>; | ||
| 65 | interrupts = <42 4 0>; | ||
| 66 | dmas = <&dma1 2 17>; | ||
| 67 | dma-names = "tx"; | ||
| 68 | }; | ||
diff --git a/Documentation/devicetree/bindings/crypto/fsl-dcp.txt b/Documentation/devicetree/bindings/crypto/fsl-dcp.txt new file mode 100644 index 000000000000..6949e50f1f16 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/fsl-dcp.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | Freescale DCP (Data Co-Processor) found on i.MX23/i.MX28 . | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : Should be "fsl,<soc>-dcp" | ||
| 5 | - reg : Should contain MXS DCP registers location and length | ||
| 6 | - interrupts : Should contain MXS DCP interrupt numbers, VMI IRQ and DCP IRQ | ||
| 7 | must be supplied, optionally Secure IRQ can be present, but | ||
| 8 | is currently not implemented and not used. | ||
| 9 | |||
| 10 | Example: | ||
| 11 | |||
| 12 | dcp@80028000 { | ||
| 13 | compatible = "fsl,imx28-dcp", "fsl,imx23-dcp"; | ||
| 14 | reg = <0x80028000 0x2000>; | ||
| 15 | interrupts = <52 53>; | ||
| 16 | status = "okay"; | ||
| 17 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/bcm2835-dma.txt b/Documentation/devicetree/bindings/dma/bcm2835-dma.txt new file mode 100644 index 000000000000..1396078d15ac --- /dev/null +++ b/Documentation/devicetree/bindings/dma/bcm2835-dma.txt | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | * BCM2835 DMA controller | ||
| 2 | |||
| 3 | The BCM2835 DMA controller has 16 channels in total. | ||
| 4 | Only the lower 13 channels have an associated IRQ. | ||
| 5 | Some arbitrary channels are used by the firmware | ||
| 6 | (1,3,6,7 in the current firmware version). | ||
| 7 | The channels 0,2 and 3 have special functionality | ||
| 8 | and should not be used by the driver. | ||
| 9 | |||
| 10 | Required properties: | ||
| 11 | - compatible: Should be "brcm,bcm2835-dma". | ||
| 12 | - reg: Should contain DMA registers location and length. | ||
| 13 | - interrupts: Should contain the DMA interrupts associated | ||
| 14 | to the DMA channels in ascending order. | ||
| 15 | - #dma-cells: Must be <1>, the cell in the dmas property of the | ||
| 16 | client device represents the DREQ number. | ||
| 17 | - brcm,dma-channel-mask: Bit mask representing the channels | ||
| 18 | not used by the firmware in ascending order, | ||
| 19 | i.e. first channel corresponds to LSB. | ||
| 20 | |||
| 21 | Example: | ||
| 22 | |||
| 23 | dma: dma@7e007000 { | ||
| 24 | compatible = "brcm,bcm2835-dma"; | ||
| 25 | reg = <0x7e007000 0xf00>; | ||
| 26 | interrupts = <1 16>, | ||
| 27 | <1 17>, | ||
| 28 | <1 18>, | ||
| 29 | <1 19>, | ||
| 30 | <1 20>, | ||
| 31 | <1 21>, | ||
| 32 | <1 22>, | ||
| 33 | <1 23>, | ||
| 34 | <1 24>, | ||
| 35 | <1 25>, | ||
| 36 | <1 26>, | ||
| 37 | <1 27>, | ||
| 38 | <1 28>; | ||
| 39 | |||
| 40 | #dma-cells = <1>; | ||
| 41 | brcm,dma-channel-mask = <0x7f35>; | ||
| 42 | }; | ||
| 43 | |||
| 44 | DMA clients connected to the BCM2835 DMA controller must use the format | ||
| 45 | described in the dma.txt file, using a two-cell specifier for each channel. | ||
| 46 | |||
| 47 | Example: | ||
| 48 | |||
| 49 | bcm2835_i2s: i2s@7e203000 { | ||
| 50 | compatible = "brcm,bcm2835-i2s"; | ||
| 51 | reg = < 0x7e203000 0x20>, | ||
| 52 | < 0x7e101098 0x02>; | ||
| 53 | |||
| 54 | dmas = <&dma 2>, | ||
| 55 | <&dma 3>; | ||
| 56 | dma-names = "tx", "rx"; | ||
| 57 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt index 4fa814d38321..ee9be9961524 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt | |||
| @@ -1,12 +1,16 @@ | |||
| 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,imx31-sdma", "fsl,imx31-to1-sdma", | 4 | - compatible : Should be one of |
| 5 | "fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma", | 5 | "fsl,imx25-sdma" |
| 6 | "fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or | 6 | "fsl,imx31-sdma", "fsl,imx31-to1-sdma", "fsl,imx31-to2-sdma" |
| 7 | "fsl,imx6q-sdma". The -to variants should be preferred since they | 7 | "fsl,imx35-sdma", "fsl,imx35-to1-sdma", "fsl,imx35-to2-sdma" |
| 8 | allow to determnine the correct ROM script addresses needed for | 8 | "fsl,imx51-sdma" |
| 9 | the driver to work without additional firmware. | 9 | "fsl,imx53-sdma" |
| 10 | "fsl,imx6q-sdma" | ||
| 11 | The -to variants should be preferred since they allow to determnine the | ||
| 12 | correct ROM script addresses needed for the driver to work without additional | ||
| 13 | firmware. | ||
| 10 | - reg : Should contain SDMA registers location and length | 14 | - reg : Should contain SDMA registers location and length |
| 11 | - interrupts : Should contain SDMA interrupt | 15 | - interrupts : Should contain SDMA interrupt |
| 12 | - #dma-cells : Must be <3>. | 16 | - #dma-cells : Must be <3>. |
| @@ -42,6 +46,7 @@ The full ID of peripheral types can be found below. | |||
| 42 | 19 IPU Memory | 46 | 19 IPU Memory |
| 43 | 20 ASRC | 47 | 20 ASRC |
| 44 | 21 ESAI | 48 | 21 ESAI |
| 49 | 22 SSI Dual FIFO (needs firmware ver >= 2) | ||
| 45 | 50 | ||
| 46 | The third cell specifies the transfer priority as below. | 51 | The third cell specifies the transfer priority as below. |
| 47 | 52 | ||
diff --git a/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt b/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt new file mode 100644 index 000000000000..8a9f3559335b --- /dev/null +++ b/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | MOXA ART DMA Controller | ||
| 2 | |||
| 3 | See dma.txt first | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | |||
| 7 | - compatible : Must be "moxa,moxart-dma" | ||
| 8 | - reg : Should contain registers location and length | ||
| 9 | - interrupts : Should contain an interrupt-specifier for the sole | ||
| 10 | interrupt generated by the device | ||
| 11 | - #dma-cells : Should be 1, a single cell holding a line request number | ||
| 12 | |||
| 13 | Example: | ||
| 14 | |||
| 15 | dma: dma@90500000 { | ||
| 16 | compatible = "moxa,moxart-dma"; | ||
| 17 | reg = <0x90500080 0x40>; | ||
| 18 | interrupts = <24 0>; | ||
| 19 | #dma-cells = <1>; | ||
| 20 | }; | ||
| 21 | |||
| 22 | |||
| 23 | Clients: | ||
| 24 | |||
| 25 | DMA clients connected to the MOXA ART DMA controller must use the format | ||
| 26 | described in the dma.txt file, using a two-cell specifier for each channel: | ||
| 27 | a phandle plus one integer cells. | ||
| 28 | The two cells in order are: | ||
| 29 | |||
| 30 | 1. A phandle pointing to the DMA controller. | ||
| 31 | 2. Peripheral identifier for the hardware handshaking interface. | ||
| 32 | |||
| 33 | Example: | ||
| 34 | Use specific request line passing from dma | ||
| 35 | For example, MMC request line is 5 | ||
| 36 | |||
| 37 | sdhci: sdhci@98e00000 { | ||
| 38 | compatible = "moxa,moxart-sdhci"; | ||
| 39 | reg = <0x98e00000 0x5C>; | ||
| 40 | interrupts = <5 0>; | ||
| 41 | clocks = <&clk_apb>; | ||
| 42 | dmas = <&dma 5>, | ||
| 43 | <&dma 5>; | ||
| 44 | dma-names = "tx", "rx"; | ||
| 45 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt index a8c21c256baa..1f5729f10621 100644 --- a/Documentation/devicetree/bindings/dma/ste-dma40.txt +++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt | |||
| @@ -50,6 +50,9 @@ Each dmas request consists of 4 cells: | |||
| 50 | 0x00000008: Use fixed channel: | 50 | 0x00000008: Use fixed channel: |
| 51 | Use automatic channel selection when unset | 51 | Use automatic channel selection when unset |
| 52 | Use DMA request line number when set | 52 | Use DMA request line number when set |
| 53 | 0x00000010: Set channel as high priority: | ||
| 54 | Normal priority when unset | ||
| 55 | High priority when set | ||
| 53 | 56 | ||
| 54 | Example: | 57 | Example: |
| 55 | 58 | ||
diff --git a/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt b/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt index 90fa7da525b8..c6908e7c42cc 100644 --- a/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt +++ b/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt | |||
| @@ -5,6 +5,16 @@ Required properties: | |||
| 5 | - reg: Should contain DMA registers location and length. This shuld include | 5 | - reg: Should contain DMA registers location and length. This shuld include |
| 6 | all of the per-channel registers. | 6 | all of the per-channel registers. |
| 7 | - interrupts: Should contain all of the per-channel DMA interrupts. | 7 | - interrupts: Should contain all of the per-channel DMA interrupts. |
| 8 | - clocks: Must contain one entry, for the module clock. | ||
| 9 | See ../clocks/clock-bindings.txt for details. | ||
| 10 | - resets : Must contain an entry for each entry in reset-names. | ||
| 11 | See ../reset/reset.txt for details. | ||
| 12 | - reset-names : Must include the following entries: | ||
| 13 | - dma | ||
| 14 | - #dma-cells : Must be <1>. This dictates the length of DMA specifiers in | ||
| 15 | client nodes' dmas properties. The specifier represents the DMA request | ||
| 16 | select value for the peripheral. For more details, consult the Tegra TRM's | ||
| 17 | documentation of the APB DMA channel control register REQ_SEL field. | ||
| 8 | 18 | ||
| 9 | Examples: | 19 | Examples: |
| 10 | 20 | ||
| @@ -27,4 +37,8 @@ apbdma: dma@6000a000 { | |||
| 27 | 0 149 0x04 | 37 | 0 149 0x04 |
| 28 | 0 150 0x04 | 38 | 0 150 0x04 |
| 29 | 0 151 0x04 >; | 39 | 0 151 0x04 >; |
| 40 | clocks = <&tegra_car 34>; | ||
| 41 | resets = <&tegra_car 34>; | ||
| 42 | reset-names = "dma"; | ||
| 43 | #dma-cells = <1>; | ||
| 30 | }; | 44 | }; |
diff --git a/Documentation/devicetree/bindings/extcon/extcon-palmas.txt b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt index 7dab6a8f4a0e..45414bbcd945 100644 --- a/Documentation/devicetree/bindings/extcon/extcon-palmas.txt +++ b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt | |||
| @@ -2,7 +2,11 @@ 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 contain one of: |
| 6 | * "ti,palmas-usb-vid". | ||
| 7 | * "ti,twl6035-usb-vid". | ||
| 8 | * "ti,palmas-usb" (DEPRECATED - use "ti,palmas-usb-vid"). | ||
| 9 | * "ti,twl6035-usb" (DEPRECATED - use "ti,twl6035-usb-vid"). | ||
| 6 | 10 | ||
| 7 | Optional Properties: | 11 | Optional Properties: |
| 8 | - ti,wakeup : To enable the wakeup comparator in probe | 12 | - ti,wakeup : To enable the wakeup comparator in probe |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt new file mode 100644 index 000000000000..a2e839d6e338 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | Davinci GPIO controller bindings | ||
| 2 | |||
| 3 | Required Properties: | ||
| 4 | - compatible: should be "ti,dm6441-gpio" | ||
| 5 | |||
| 6 | - reg: Physical base address of the controller and the size of memory mapped | ||
| 7 | registers. | ||
| 8 | |||
| 9 | - gpio-controller : Marks the device node as a gpio controller. | ||
| 10 | |||
| 11 | - interrupt-parent: phandle of the parent interrupt controller. | ||
| 12 | |||
| 13 | - interrupts: Array of GPIO interrupt number. Only banked or unbanked IRQs are | ||
| 14 | supported at a time. | ||
| 15 | |||
| 16 | - ti,ngpio: The number of GPIO pins supported. | ||
| 17 | |||
| 18 | - ti,davinci-gpio-unbanked: The number of GPIOs that have an individual interrupt | ||
| 19 | line to processor. | ||
| 20 | |||
| 21 | The GPIO controller also acts as an interrupt controller. It uses the default | ||
| 22 | two cells specifier as described in Documentation/devicetree/bindings/ | ||
| 23 | interrupt-controller/interrupts.txt. | ||
| 24 | |||
| 25 | Example: | ||
| 26 | |||
| 27 | gpio: gpio@1e26000 { | ||
| 28 | compatible = "ti,dm6441-gpio"; | ||
| 29 | gpio-controller; | ||
| 30 | reg = <0x226000 0x1000>; | ||
| 31 | interrupt-parent = <&intc>; | ||
| 32 | interrupts = <42 IRQ_TYPE_EDGE_BOTH 43 IRQ_TYPE_EDGE_BOTH | ||
| 33 | 44 IRQ_TYPE_EDGE_BOTH 45 IRQ_TYPE_EDGE_BOTH | ||
| 34 | 46 IRQ_TYPE_EDGE_BOTH 47 IRQ_TYPE_EDGE_BOTH | ||
| 35 | 48 IRQ_TYPE_EDGE_BOTH 49 IRQ_TYPE_EDGE_BOTH | ||
| 36 | 50 IRQ_TYPE_EDGE_BOTH>; | ||
| 37 | ti,ngpio = <144>; | ||
| 38 | ti,davinci-gpio-unbanked = <0>; | ||
| 39 | interrupt-controller; | ||
| 40 | #interrupt-cells = <2>; | ||
| 41 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-lp3943.txt b/Documentation/devicetree/bindings/gpio/gpio-lp3943.txt new file mode 100644 index 000000000000..80fcb7d70e13 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-lp3943.txt | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | TI/National Semiconductor LP3943 GPIO controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "ti,lp3943-gpio" | ||
| 5 | - gpio-controller: Marks the device node as a GPIO controller. | ||
| 6 | - #gpio-cells: Should be 2. See gpio.txt in this directory for a | ||
| 7 | description of the cells format. | ||
| 8 | |||
| 9 | Example: | ||
| 10 | Simple LED controls with LP3943 GPIO controller | ||
| 11 | |||
| 12 | &i2c4 { | ||
| 13 | lp3943@60 { | ||
| 14 | compatible = "ti,lp3943"; | ||
| 15 | reg = <0x60>; | ||
| 16 | |||
| 17 | gpioex: gpio { | ||
| 18 | compatible = "ti,lp3943-gpio"; | ||
| 19 | gpio-controller; | ||
| 20 | #gpio-cells = <2>; | ||
| 21 | }; | ||
| 22 | }; | ||
| 23 | }; | ||
| 24 | |||
| 25 | leds { | ||
| 26 | compatible = "gpio-leds"; | ||
| 27 | indicator1 { | ||
| 28 | label = "indi1"; | ||
| 29 | gpios = <&gpioex 9 GPIO_ACTIVE_LOW>; | ||
| 30 | }; | ||
| 31 | |||
| 32 | indicator2 { | ||
| 33 | label = "indi2"; | ||
| 34 | gpios = <&gpioex 10 GPIO_ACTIVE_LOW>; | ||
| 35 | default-state = "off"; | ||
| 36 | }; | ||
| 37 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt index daa30174bcc1..3ddc7ccfe5f3 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt | |||
| @@ -38,12 +38,38 @@ Required device specific properties (only for SPI chips): | |||
| 38 | removed. | 38 | removed. |
| 39 | - 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 |
| 40 | 40 | ||
| 41 | Example I2C: | 41 | Optional properties: |
| 42 | - #interrupt-cells : Should be two. | ||
| 43 | - first cell is the pin number | ||
| 44 | - second cell is used to specify flags. | ||
| 45 | - interrupt-controller: Marks the device node as a interrupt controller. | ||
| 46 | NOTE: The interrupt functionality is only supported for i2c versions of the | ||
| 47 | chips. The spi chips can also do the interrupts, but this is not supported by | ||
| 48 | the linux driver yet. | ||
| 49 | |||
| 50 | Optional device specific properties: | ||
| 51 | - microchip,irq-mirror: Sets the mirror flag in the IOCON register. Devices | ||
| 52 | with two interrupt outputs (these are the devices ending with 17 and | ||
| 53 | those that have 16 IOs) have two IO banks: IO 0-7 form bank 1 and | ||
| 54 | IO 8-15 are bank 2. These chips have two different interrupt outputs: | ||
| 55 | One for bank 1 and another for bank 2. If irq-mirror is set, both | ||
| 56 | interrupts are generated regardless of the bank that an input change | ||
| 57 | occured on. If it is not set, the interrupt are only generated for the | ||
| 58 | bank they belong to. | ||
| 59 | On devices with only one interrupt output this property is useless. | ||
| 60 | |||
| 61 | Example I2C (with interrupt): | ||
| 42 | gpiom1: gpio@20 { | 62 | gpiom1: gpio@20 { |
| 43 | compatible = "microchip,mcp23017"; | 63 | compatible = "microchip,mcp23017"; |
| 44 | gpio-controller; | 64 | gpio-controller; |
| 45 | #gpio-cells = <2>; | 65 | #gpio-cells = <2>; |
| 46 | reg = <0x20>; | 66 | reg = <0x20>; |
| 67 | |||
| 68 | interrupt-parent = <&gpio1>; | ||
| 69 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; | ||
| 70 | interrupt-controller; | ||
| 71 | #interrupt-cells=<2>; | ||
| 72 | microchip,irq-mirror; | ||
| 47 | }; | 73 | }; |
| 48 | 74 | ||
| 49 | Example SPI: | 75 | Example SPI: |
diff --git a/Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt b/Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt new file mode 100644 index 000000000000..f8e8f185a3db --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | MOXA ART GPIO Controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - #gpio-cells : Should be 2, The first cell is the pin number, | ||
| 6 | the second cell is used to specify polarity: | ||
| 7 | 0 = active high | ||
| 8 | 1 = active low | ||
| 9 | - compatible : Must be "moxa,moxart-gpio" | ||
| 10 | - reg : Should contain registers location and length | ||
| 11 | |||
| 12 | Example: | ||
| 13 | |||
| 14 | gpio: gpio@98700000 { | ||
| 15 | gpio-controller; | ||
| 16 | #gpio-cells = <2>; | ||
| 17 | compatible = "moxa,moxart-gpio"; | ||
| 18 | reg = <0x98700000 0xC>; | ||
| 19 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 8655df9440d5..f61cef74a212 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | |||
| @@ -2,10 +2,11 @@ | |||
| 2 | 2 | ||
| 3 | Required Properties: | 3 | Required Properties: |
| 4 | 4 | ||
| 5 | - compatible: should be one of the following. | 5 | - compatible: should contain one of the following. |
| 6 | - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. | 6 | - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. |
| 7 | - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller. | 7 | - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller. |
| 8 | - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller. | 8 | - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller. |
| 9 | - "renesas,gpio-r8a7791": for R8A7791 (R-Car M2) compatible GPIO controller. | ||
| 9 | - "renesas,gpio-rcar": for generic R-Car GPIO controller. | 10 | - "renesas,gpio-rcar": for generic R-Car GPIO controller. |
| 10 | 11 | ||
| 11 | - reg: Base address and length of each memory resource used by the GPIO | 12 | - reg: Base address and length of each memory resource used by the GPIO |
diff --git a/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt b/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt index b4fa934ae3a2..efaeec8961b6 100644 --- a/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt +++ b/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt | |||
| @@ -9,6 +9,12 @@ Required properties: | |||
| 9 | - #size-cells: The number of cells used to represent the size of an address | 9 | - #size-cells: The number of cells used to represent the size of an address |
| 10 | range in the host1x address space. Should be 1. | 10 | range in the host1x address space. Should be 1. |
| 11 | - ranges: The mapping of the host1x address space to the CPU address space. | 11 | - ranges: The mapping of the host1x address space to the CPU address space. |
| 12 | - clocks: Must contain one entry, for the module clock. | ||
| 13 | See ../clocks/clock-bindings.txt for details. | ||
| 14 | - resets: Must contain an entry for each entry in reset-names. | ||
| 15 | See ../reset/reset.txt for details. | ||
| 16 | - reset-names: Must include the following entries: | ||
| 17 | - host1x | ||
| 12 | 18 | ||
| 13 | The host1x top-level node defines a number of children, each representing one | 19 | The host1x top-level node defines a number of children, each representing one |
| 14 | of the following host1x client modules: | 20 | of the following host1x client modules: |
| @@ -19,6 +25,12 @@ of the following host1x client modules: | |||
| 19 | - compatible: "nvidia,tegra<chip>-mpe" | 25 | - compatible: "nvidia,tegra<chip>-mpe" |
| 20 | - reg: Physical base address and length of the controller's registers. | 26 | - reg: Physical base address and length of the controller's registers. |
| 21 | - interrupts: The interrupt outputs from the controller. | 27 | - interrupts: The interrupt outputs from the controller. |
| 28 | - clocks: Must contain one entry, for the module clock. | ||
| 29 | See ../clocks/clock-bindings.txt for details. | ||
| 30 | - resets: Must contain an entry for each entry in reset-names. | ||
| 31 | See ../reset/reset.txt for details. | ||
| 32 | - reset-names: Must include the following entries: | ||
| 33 | - mpe | ||
| 22 | 34 | ||
| 23 | - vi: video input | 35 | - vi: video input |
| 24 | 36 | ||
| @@ -26,6 +38,12 @@ of the following host1x client modules: | |||
| 26 | - compatible: "nvidia,tegra<chip>-vi" | 38 | - compatible: "nvidia,tegra<chip>-vi" |
| 27 | - reg: Physical base address and length of the controller's registers. | 39 | - reg: Physical base address and length of the controller's registers. |
| 28 | - interrupts: The interrupt outputs from the controller. | 40 | - interrupts: The interrupt outputs from the controller. |
| 41 | - clocks: Must contain one entry, for the module clock. | ||
| 42 | See ../clocks/clock-bindings.txt for details. | ||
| 43 | - resets: Must contain an entry for each entry in reset-names. | ||
| 44 | See ../reset/reset.txt for details. | ||
| 45 | - reset-names: Must include the following entries: | ||
| 46 | - vi | ||
| 29 | 47 | ||
| 30 | - epp: encoder pre-processor | 48 | - epp: encoder pre-processor |
| 31 | 49 | ||
| @@ -33,6 +51,12 @@ of the following host1x client modules: | |||
| 33 | - compatible: "nvidia,tegra<chip>-epp" | 51 | - compatible: "nvidia,tegra<chip>-epp" |
| 34 | - reg: Physical base address and length of the controller's registers. | 52 | - reg: Physical base address and length of the controller's registers. |
| 35 | - interrupts: The interrupt outputs from the controller. | 53 | - interrupts: The interrupt outputs from the controller. |
| 54 | - clocks: Must contain one entry, for the module clock. | ||
| 55 | See ../clocks/clock-bindings.txt for details. | ||
| 56 | - resets: Must contain an entry for each entry in reset-names. | ||
| 57 | See ../reset/reset.txt for details. | ||
| 58 | - reset-names: Must include the following entries: | ||
| 59 | - epp | ||
| 36 | 60 | ||
| 37 | - isp: image signal processor | 61 | - isp: image signal processor |
| 38 | 62 | ||
| @@ -40,6 +64,12 @@ of the following host1x client modules: | |||
| 40 | - compatible: "nvidia,tegra<chip>-isp" | 64 | - compatible: "nvidia,tegra<chip>-isp" |
| 41 | - reg: Physical base address and length of the controller's registers. | 65 | - reg: Physical base address and length of the controller's registers. |
| 42 | - interrupts: The interrupt outputs from the controller. | 66 | - interrupts: The interrupt outputs from the controller. |
| 67 | - clocks: Must contain one entry, for the module clock. | ||
| 68 | See ../clocks/clock-bindings.txt for details. | ||
| 69 | - resets: Must contain an entry for each entry in reset-names. | ||
| 70 | See ../reset/reset.txt for details. | ||
| 71 | - reset-names: Must include the following entries: | ||
| 72 | - isp | ||
| 43 | 73 | ||
| 44 | - gr2d: 2D graphics engine | 74 | - gr2d: 2D graphics engine |
| 45 | 75 | ||
| @@ -47,12 +77,30 @@ of the following host1x client modules: | |||
| 47 | - compatible: "nvidia,tegra<chip>-gr2d" | 77 | - compatible: "nvidia,tegra<chip>-gr2d" |
| 48 | - reg: Physical base address and length of the controller's registers. | 78 | - reg: Physical base address and length of the controller's registers. |
| 49 | - interrupts: The interrupt outputs from the controller. | 79 | - interrupts: The interrupt outputs from the controller. |
| 80 | - clocks: Must contain one entry, for the module clock. | ||
| 81 | See ../clocks/clock-bindings.txt for details. | ||
| 82 | - resets: Must contain an entry for each entry in reset-names. | ||
| 83 | See ../reset/reset.txt for details. | ||
| 84 | - reset-names: Must include the following entries: | ||
| 85 | - 2d | ||
| 50 | 86 | ||
| 51 | - gr3d: 3D graphics engine | 87 | - gr3d: 3D graphics engine |
| 52 | 88 | ||
| 53 | Required properties: | 89 | Required properties: |
| 54 | - compatible: "nvidia,tegra<chip>-gr3d" | 90 | - compatible: "nvidia,tegra<chip>-gr3d" |
| 55 | - reg: Physical base address and length of the controller's registers. | 91 | - reg: Physical base address and length of the controller's registers. |
| 92 | - clocks: Must contain an entry for each entry in clock-names. | ||
| 93 | See ../clocks/clock-bindings.txt for details. | ||
| 94 | - clock-names: Must include the following entries: | ||
| 95 | (This property may be omitted if the only clock in the list is "3d") | ||
| 96 | - 3d | ||
| 97 | This MUST be the first entry. | ||
| 98 | - 3d2 (Only required on SoCs with two 3D clocks) | ||
| 99 | - resets: Must contain an entry for each entry in reset-names. | ||
| 100 | See ../reset/reset.txt for details. | ||
| 101 | - reset-names: Must include the following entries: | ||
| 102 | - 3d | ||
| 103 | - 3d2 (Only required on SoCs with two 3D clocks) | ||
| 56 | 104 | ||
| 57 | - dc: display controller | 105 | - dc: display controller |
| 58 | 106 | ||
| @@ -60,6 +108,19 @@ of the following host1x client modules: | |||
| 60 | - compatible: "nvidia,tegra<chip>-dc" | 108 | - compatible: "nvidia,tegra<chip>-dc" |
| 61 | - reg: Physical base address and length of the controller's registers. | 109 | - reg: Physical base address and length of the controller's registers. |
| 62 | - interrupts: The interrupt outputs from the controller. | 110 | - interrupts: The interrupt outputs from the controller. |
| 111 | - clocks: Must contain an entry for each entry in clock-names. | ||
| 112 | See ../clocks/clock-bindings.txt for details. | ||
| 113 | - clock-names: Must include the following entries: | ||
| 114 | - dc | ||
| 115 | This MUST be the first entry. | ||
| 116 | - parent | ||
| 117 | - resets: Must contain an entry for each entry in reset-names. | ||
| 118 | See ../reset/reset.txt for details. | ||
| 119 | - reset-names: Must include the following entries: | ||
| 120 | - dc | ||
| 121 | - nvidia,head: The number of the display controller head. This is used to | ||
| 122 | setup the various types of output to receive video data from the given | ||
| 123 | head. | ||
| 63 | 124 | ||
| 64 | Each display controller node has a child node, named "rgb", that represents | 125 | Each display controller node has a child node, named "rgb", that represents |
| 65 | the RGB output associated with the controller. It can take the following | 126 | the RGB output associated with the controller. It can take the following |
| @@ -67,6 +128,7 @@ of the following host1x client modules: | |||
| 67 | - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing | 128 | - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing |
| 68 | - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection | 129 | - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection |
| 69 | - nvidia,edid: supplies a binary EDID blob | 130 | - nvidia,edid: supplies a binary EDID blob |
| 131 | - nvidia,panel: phandle of a display panel | ||
| 70 | 132 | ||
| 71 | - hdmi: High Definition Multimedia Interface | 133 | - hdmi: High Definition Multimedia Interface |
| 72 | 134 | ||
| @@ -76,11 +138,22 @@ of the following host1x client modules: | |||
| 76 | - interrupts: The interrupt outputs from the controller. | 138 | - interrupts: The interrupt outputs from the controller. |
| 77 | - vdd-supply: regulator for supply voltage | 139 | - vdd-supply: regulator for supply voltage |
| 78 | - pll-supply: regulator for PLL | 140 | - pll-supply: regulator for PLL |
| 141 | - clocks: Must contain an entry for each entry in clock-names. | ||
| 142 | See ../clocks/clock-bindings.txt for details. | ||
| 143 | - clock-names: Must include the following entries: | ||
| 144 | - hdmi | ||
| 145 | This MUST be the first entry. | ||
| 146 | - parent | ||
| 147 | - resets: Must contain an entry for each entry in reset-names. | ||
| 148 | See ../reset/reset.txt for details. | ||
| 149 | - reset-names: Must include the following entries: | ||
| 150 | - hdmi | ||
| 79 | 151 | ||
| 80 | Optional properties: | 152 | Optional properties: |
| 81 | - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing | 153 | - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing |
| 82 | - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection | 154 | - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection |
| 83 | - nvidia,edid: supplies a binary EDID blob | 155 | - nvidia,edid: supplies a binary EDID blob |
| 156 | - nvidia,panel: phandle of a display panel | ||
| 84 | 157 | ||
| 85 | - tvo: TV encoder output | 158 | - tvo: TV encoder output |
| 86 | 159 | ||
| @@ -88,12 +161,34 @@ of the following host1x client modules: | |||
| 88 | - compatible: "nvidia,tegra<chip>-tvo" | 161 | - compatible: "nvidia,tegra<chip>-tvo" |
| 89 | - reg: Physical base address and length of the controller's registers. | 162 | - reg: Physical base address and length of the controller's registers. |
| 90 | - interrupts: The interrupt outputs from the controller. | 163 | - interrupts: The interrupt outputs from the controller. |
| 164 | - clocks: Must contain one entry, for the module clock. | ||
| 165 | See ../clocks/clock-bindings.txt for details. | ||
| 91 | 166 | ||
| 92 | - dsi: display serial interface | 167 | - dsi: display serial interface |
| 93 | 168 | ||
| 94 | Required properties: | 169 | Required properties: |
| 95 | - compatible: "nvidia,tegra<chip>-dsi" | 170 | - compatible: "nvidia,tegra<chip>-dsi" |
| 96 | - reg: Physical base address and length of the controller's registers. | 171 | - reg: Physical base address and length of the controller's registers. |
| 172 | - clocks: Must contain an entry for each entry in clock-names. | ||
| 173 | See ../clocks/clock-bindings.txt for details. | ||
| 174 | - clock-names: Must include the following entries: | ||
| 175 | - dsi | ||
| 176 | This MUST be the first entry. | ||
| 177 | - lp | ||
| 178 | - parent | ||
| 179 | - resets: Must contain an entry for each entry in reset-names. | ||
| 180 | See ../reset/reset.txt for details. | ||
| 181 | - reset-names: Must include the following entries: | ||
| 182 | - dsi | ||
| 183 | - nvidia,mipi-calibrate: Should contain a phandle and a specifier specifying | ||
| 184 | which pads are used by this DSI output and need to be calibrated. See also | ||
| 185 | ../mipi/nvidia,tegra114-mipi.txt. | ||
| 186 | |||
| 187 | Optional properties: | ||
| 188 | - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing | ||
| 189 | - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection | ||
| 190 | - nvidia,edid: supplies a binary EDID blob | ||
| 191 | - nvidia,panel: phandle of a display panel | ||
| 97 | 192 | ||
| 98 | Example: | 193 | Example: |
| 99 | 194 | ||
| @@ -105,6 +200,9 @@ Example: | |||
| 105 | reg = <0x50000000 0x00024000>; | 200 | reg = <0x50000000 0x00024000>; |
| 106 | interrupts = <0 65 0x04 /* mpcore syncpt */ | 201 | interrupts = <0 65 0x04 /* mpcore syncpt */ |
| 107 | 0 67 0x04>; /* mpcore general */ | 202 | 0 67 0x04>; /* mpcore general */ |
| 203 | clocks = <&tegra_car TEGRA20_CLK_HOST1X>; | ||
| 204 | resets = <&tegra_car 28>; | ||
| 205 | reset-names = "host1x"; | ||
| 108 | 206 | ||
| 109 | #address-cells = <1>; | 207 | #address-cells = <1>; |
| 110 | #size-cells = <1>; | 208 | #size-cells = <1>; |
| @@ -115,41 +213,64 @@ Example: | |||
| 115 | compatible = "nvidia,tegra20-mpe"; | 213 | compatible = "nvidia,tegra20-mpe"; |
| 116 | reg = <0x54040000 0x00040000>; | 214 | reg = <0x54040000 0x00040000>; |
| 117 | interrupts = <0 68 0x04>; | 215 | interrupts = <0 68 0x04>; |
| 216 | clocks = <&tegra_car TEGRA20_CLK_MPE>; | ||
| 217 | resets = <&tegra_car 60>; | ||
| 218 | reset-names = "mpe"; | ||
| 118 | }; | 219 | }; |
| 119 | 220 | ||
| 120 | vi { | 221 | vi { |
| 121 | compatible = "nvidia,tegra20-vi"; | 222 | compatible = "nvidia,tegra20-vi"; |
| 122 | reg = <0x54080000 0x00040000>; | 223 | reg = <0x54080000 0x00040000>; |
| 123 | interrupts = <0 69 0x04>; | 224 | interrupts = <0 69 0x04>; |
| 225 | clocks = <&tegra_car TEGRA20_CLK_VI>; | ||
| 226 | resets = <&tegra_car 100>; | ||
| 227 | reset-names = "vi"; | ||
| 124 | }; | 228 | }; |
| 125 | 229 | ||
| 126 | epp { | 230 | epp { |
| 127 | compatible = "nvidia,tegra20-epp"; | 231 | compatible = "nvidia,tegra20-epp"; |
| 128 | reg = <0x540c0000 0x00040000>; | 232 | reg = <0x540c0000 0x00040000>; |
| 129 | interrupts = <0 70 0x04>; | 233 | interrupts = <0 70 0x04>; |
| 234 | clocks = <&tegra_car TEGRA20_CLK_EPP>; | ||
| 235 | resets = <&tegra_car 19>; | ||
| 236 | reset-names = "epp"; | ||
| 130 | }; | 237 | }; |
| 131 | 238 | ||
| 132 | isp { | 239 | isp { |
| 133 | compatible = "nvidia,tegra20-isp"; | 240 | compatible = "nvidia,tegra20-isp"; |
| 134 | reg = <0x54100000 0x00040000>; | 241 | reg = <0x54100000 0x00040000>; |
| 135 | interrupts = <0 71 0x04>; | 242 | interrupts = <0 71 0x04>; |
| 243 | clocks = <&tegra_car TEGRA20_CLK_ISP>; | ||
| 244 | resets = <&tegra_car 23>; | ||
| 245 | reset-names = "isp"; | ||
| 136 | }; | 246 | }; |
| 137 | 247 | ||
| 138 | gr2d { | 248 | gr2d { |
| 139 | compatible = "nvidia,tegra20-gr2d"; | 249 | compatible = "nvidia,tegra20-gr2d"; |
| 140 | reg = <0x54140000 0x00040000>; | 250 | reg = <0x54140000 0x00040000>; |
| 141 | interrupts = <0 72 0x04>; | 251 | interrupts = <0 72 0x04>; |
| 252 | clocks = <&tegra_car TEGRA20_CLK_GR2D>; | ||
| 253 | resets = <&tegra_car 21>; | ||
| 254 | reset-names = "2d"; | ||
| 142 | }; | 255 | }; |
| 143 | 256 | ||
| 144 | gr3d { | 257 | gr3d { |
| 145 | compatible = "nvidia,tegra20-gr3d"; | 258 | compatible = "nvidia,tegra20-gr3d"; |
| 146 | reg = <0x54180000 0x00040000>; | 259 | reg = <0x54180000 0x00040000>; |
| 260 | clocks = <&tegra_car TEGRA20_CLK_GR3D>; | ||
| 261 | resets = <&tegra_car 24>; | ||
| 262 | reset-names = "3d"; | ||
| 147 | }; | 263 | }; |
| 148 | 264 | ||
| 149 | dc@54200000 { | 265 | dc@54200000 { |
| 150 | compatible = "nvidia,tegra20-dc"; | 266 | compatible = "nvidia,tegra20-dc"; |
| 151 | reg = <0x54200000 0x00040000>; | 267 | reg = <0x54200000 0x00040000>; |
| 152 | interrupts = <0 73 0x04>; | 268 | interrupts = <0 73 0x04>; |
| 269 | clocks = <&tegra_car TEGRA20_CLK_DISP1>, | ||
| 270 | <&tegra_car TEGRA20_CLK_PLL_P>; | ||
| 271 | clock-names = "dc", "parent"; | ||
| 272 | resets = <&tegra_car 27>; | ||
| 273 | reset-names = "dc"; | ||
| 153 | 274 | ||
| 154 | rgb { | 275 | rgb { |
| 155 | status = "disabled"; | 276 | status = "disabled"; |
| @@ -160,6 +281,11 @@ Example: | |||
| 160 | compatible = "nvidia,tegra20-dc"; | 281 | compatible = "nvidia,tegra20-dc"; |
| 161 | reg = <0x54240000 0x00040000>; | 282 | reg = <0x54240000 0x00040000>; |
| 162 | interrupts = <0 74 0x04>; | 283 | interrupts = <0 74 0x04>; |
| 284 | clocks = <&tegra_car TEGRA20_CLK_DISP2>, | ||
| 285 | <&tegra_car TEGRA20_CLK_PLL_P>; | ||
| 286 | clock-names = "dc", "parent"; | ||
| 287 | resets = <&tegra_car 26>; | ||
| 288 | reset-names = "dc"; | ||
| 163 | 289 | ||
| 164 | rgb { | 290 | rgb { |
| 165 | status = "disabled"; | 291 | status = "disabled"; |
| @@ -170,6 +296,11 @@ Example: | |||
| 170 | compatible = "nvidia,tegra20-hdmi"; | 296 | compatible = "nvidia,tegra20-hdmi"; |
| 171 | reg = <0x54280000 0x00040000>; | 297 | reg = <0x54280000 0x00040000>; |
| 172 | interrupts = <0 75 0x04>; | 298 | interrupts = <0 75 0x04>; |
| 299 | clocks = <&tegra_car TEGRA20_CLK_HDMI>, | ||
| 300 | <&tegra_car TEGRA20_CLK_PLL_D_OUT0>; | ||
| 301 | clock-names = "hdmi", "parent"; | ||
| 302 | resets = <&tegra_car 51>; | ||
| 303 | reset-names = "hdmi"; | ||
| 173 | status = "disabled"; | 304 | status = "disabled"; |
| 174 | }; | 305 | }; |
| 175 | 306 | ||
| @@ -177,12 +308,18 @@ Example: | |||
| 177 | compatible = "nvidia,tegra20-tvo"; | 308 | compatible = "nvidia,tegra20-tvo"; |
| 178 | reg = <0x542c0000 0x00040000>; | 309 | reg = <0x542c0000 0x00040000>; |
| 179 | interrupts = <0 76 0x04>; | 310 | interrupts = <0 76 0x04>; |
| 311 | clocks = <&tegra_car TEGRA20_CLK_TVO>; | ||
| 180 | status = "disabled"; | 312 | status = "disabled"; |
| 181 | }; | 313 | }; |
| 182 | 314 | ||
| 183 | dsi { | 315 | dsi { |
| 184 | compatible = "nvidia,tegra20-dsi"; | 316 | compatible = "nvidia,tegra20-dsi"; |
| 185 | reg = <0x54300000 0x00040000>; | 317 | reg = <0x54300000 0x00040000>; |
| 318 | clocks = <&tegra_car TEGRA20_CLK_DSI>, | ||
| 319 | <&tegra_car TEGRA20_CLK_PLL_D_OUT0>; | ||
| 320 | clock-names = "dsi", "parent"; | ||
| 321 | resets = <&tegra_car 48>; | ||
| 322 | reset-names = "dsi"; | ||
| 186 | status = "disabled"; | 323 | status = "disabled"; |
| 187 | }; | 324 | }; |
| 188 | }; | 325 | }; |
diff --git a/Documentation/devicetree/bindings/i2c/i2c-at91.txt b/Documentation/devicetree/bindings/i2c/i2c-at91.txt index b689a0d9441c..4fade84bea16 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-at91.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-at91.txt | |||
| @@ -9,6 +9,7 @@ Required properties : | |||
| 9 | - interrupts: interrupt number to the cpu. | 9 | - interrupts: interrupt number to the cpu. |
| 10 | - #address-cells = <1>; | 10 | - #address-cells = <1>; |
| 11 | - #size-cells = <0>; | 11 | - #size-cells = <0>; |
| 12 | - clocks: phandles to input clocks. | ||
| 12 | 13 | ||
| 13 | Optional properties: | 14 | Optional properties: |
| 14 | - Child nodes conforming to i2c bus binding | 15 | - Child nodes conforming to i2c bus binding |
| @@ -21,6 +22,7 @@ i2c0: i2c@fff84000 { | |||
| 21 | interrupts = <12 4 6>; | 22 | interrupts = <12 4 6>; |
| 22 | #address-cells = <1>; | 23 | #address-cells = <1>; |
| 23 | #size-cells = <0>; | 24 | #size-cells = <0>; |
| 25 | clocks = <&twi0_clk>; | ||
| 24 | 26 | ||
| 25 | 24c512@50 { | 27 | 24c512@50 { |
| 26 | compatible = "24c512"; | 28 | compatible = "24c512"; |
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt new file mode 100644 index 000000000000..34a3fb6f8488 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | * NXP PCA954x I2C bus switch | ||
| 2 | |||
| 3 | Required Properties: | ||
| 4 | |||
| 5 | - compatible: Must contain one of the following. | ||
| 6 | "nxp,pca9540", "nxp,pca9542", "nxp,pca9543", "nxp,pca9544", | ||
| 7 | "nxp,pca9545", "nxp,pca9546", "nxp,pca9547", "nxp,pca9548" | ||
| 8 | |||
| 9 | - reg: The I2C address of the device. | ||
| 10 | |||
| 11 | The following required properties are defined externally: | ||
| 12 | |||
| 13 | - Standard I2C mux properties. See i2c-mux.txt in this directory. | ||
| 14 | - I2C child bus nodes. See i2c-mux.txt in this directory. | ||
| 15 | |||
| 16 | Optional Properties: | ||
| 17 | |||
| 18 | - reset-gpios: Reference to the GPIO connected to the reset input. | ||
| 19 | |||
| 20 | |||
| 21 | Example: | ||
| 22 | |||
| 23 | i2c-switch@74 { | ||
| 24 | compatible = "nxp,pca9548"; | ||
| 25 | #address-cells = <1>; | ||
| 26 | #size-cells = <0>; | ||
| 27 | reg = <0x74>; | ||
| 28 | |||
| 29 | i2c@2 { | ||
| 30 | #address-cells = <1>; | ||
| 31 | #size-cells = <0>; | ||
| 32 | reg = <2>; | ||
| 33 | |||
| 34 | eeprom@54 { | ||
| 35 | compatible = "at,24c08"; | ||
| 36 | reg = <0x54>; | ||
| 37 | }; | ||
| 38 | }; | ||
| 39 | |||
| 40 | i2c@4 { | ||
| 41 | #address-cells = <1>; | ||
| 42 | #size-cells = <0>; | ||
| 43 | reg = <4>; | ||
| 44 | |||
| 45 | rtc@51 { | ||
| 46 | compatible = "nxp,pcf8563"; | ||
| 47 | reg = <0x51>; | ||
| 48 | }; | ||
| 49 | }; | ||
| 50 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt index 82e8f6f17179..582b4652a82a 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | |||
| @@ -5,7 +5,11 @@ 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 | or "marvell,mv78230-i2c" or "marvell,mv78230-a0-i2c" |
| 9 | Note: Only use "marvell,mv78230-a0-i2c" for a very rare, | ||
| 10 | initial version of the SoC which had broken offload | ||
| 11 | support. Linux auto-detects this and sets it | ||
| 12 | appropriately. | ||
| 9 | - interrupts : The interrupt number | 13 | - interrupts : The interrupt number |
| 10 | 14 | ||
| 11 | Optional properties : | 15 | Optional properties : |
diff --git a/Documentation/devicetree/bindings/i2c/i2c-riic.txt b/Documentation/devicetree/bindings/i2c/i2c-riic.txt new file mode 100644 index 000000000000..0bcc4716c319 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-riic.txt | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | Device tree configuration for Renesas RIIC driver | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : "renesas,riic-<soctype>". "renesas,riic-rz" as fallback | ||
| 5 | - reg : address start and address range size of device | ||
| 6 | - interrupts : 8 interrupts (TEI, RI, TI, SPI, STI, NAKI, ALI, TMOI) | ||
| 7 | - clock-frequency : frequency of bus clock in Hz | ||
| 8 | - #address-cells : should be <1> | ||
| 9 | - #size-cells : should be <0> | ||
| 10 | |||
| 11 | Pinctrl properties might be needed, too. See there. | ||
| 12 | |||
| 13 | Example: | ||
| 14 | |||
| 15 | i2c0: i2c@fcfee000 { | ||
| 16 | compatible = "renesas,riic-r7s72100", "renesas,riic-rz"; | ||
| 17 | reg = <0xfcfee000 0x44>; | ||
| 18 | interrupts = <0 157 IRQ_TYPE_LEVEL_HIGH>, | ||
| 19 | <0 158 IRQ_TYPE_EDGE_RISING>, | ||
| 20 | <0 159 IRQ_TYPE_EDGE_RISING>, | ||
| 21 | <0 160 IRQ_TYPE_LEVEL_HIGH>, | ||
| 22 | <0 161 IRQ_TYPE_LEVEL_HIGH>, | ||
| 23 | <0 162 IRQ_TYPE_LEVEL_HIGH>, | ||
| 24 | <0 163 IRQ_TYPE_LEVEL_HIGH>, | ||
| 25 | <0 164 IRQ_TYPE_LEVEL_HIGH>; | ||
| 26 | clock-frequency = <100000>; | ||
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <0>; | ||
| 29 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt index 296eb4536129..278de8e64bbf 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt | |||
| @@ -10,6 +10,8 @@ Required properties: | |||
| 10 | inside HDMIPHY block found on several samsung SoCs | 10 | inside HDMIPHY block found on several samsung SoCs |
| 11 | (d) "samsung, exynos5440-i2c", for s3c2440-like i2c used | 11 | (d) "samsung, exynos5440-i2c", for s3c2440-like i2c used |
| 12 | on EXYNOS5440 which does not need GPIO configuration. | 12 | on EXYNOS5440 which does not need GPIO configuration. |
| 13 | (e) "samsung, exynos5-sata-phy-i2c", for s3c2440-like i2c used as | ||
| 14 | a host to SATA PHY controller on an internal bus. | ||
| 13 | - reg: physical base address of the controller and length of memory mapped | 15 | - reg: physical base address of the controller and length of memory mapped |
| 14 | region. | 16 | region. |
| 15 | - interrupts: interrupt number to the cpu. | 17 | - interrupts: interrupt number to the cpu. |
diff --git a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt index ef77cc7a0e46..87507e9ce6db 100644 --- a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt +++ b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt | |||
| @@ -39,12 +39,23 @@ Required properties: | |||
| 39 | - interrupts: Should contain I2C controller interrupts. | 39 | - interrupts: Should contain I2C controller interrupts. |
| 40 | - address-cells: Address cells for I2C device address. | 40 | - address-cells: Address cells for I2C device address. |
| 41 | - size-cells: Size of the I2C device address. | 41 | - size-cells: Size of the I2C device address. |
| 42 | - clocks: Clock ID as per | 42 | - clocks: Must contain an entry for each entry in clock-names. |
| 43 | Documentation/devicetree/bindings/clock/tegra<chip-id>.txt | 43 | See ../clocks/clock-bindings.txt for details. |
| 44 | for I2C controller. | 44 | - clock-names: Must include the following entries: |
| 45 | - clock-names: Name of the clock: | 45 | Tegra20/Tegra30: |
| 46 | Tegra20/Tegra30 I2C controller: "div-clk and "fast-clk". | 46 | - div-clk |
| 47 | Tegra114 I2C controller: "div-clk". | 47 | - fast-clk |
| 48 | Tegra114: | ||
| 49 | - div-clk | ||
| 50 | - resets: Must contain an entry for each entry in reset-names. | ||
| 51 | See ../reset/reset.txt for details. | ||
| 52 | - reset-names: Must include the following entries: | ||
| 53 | - i2c | ||
| 54 | - dmas: Must contain an entry for each entry in clock-names. | ||
| 55 | See ../dma/dma.txt for details. | ||
| 56 | - dma-names: Must include the following entries: | ||
| 57 | - rx | ||
| 58 | - tx | ||
| 48 | 59 | ||
| 49 | Example: | 60 | Example: |
| 50 | 61 | ||
| @@ -56,5 +67,9 @@ Example: | |||
| 56 | #size-cells = <0>; | 67 | #size-cells = <0>; |
| 57 | clocks = <&tegra_car 12>, <&tegra_car 124>; | 68 | clocks = <&tegra_car 12>, <&tegra_car 124>; |
| 58 | clock-names = "div-clk", "fast-clk"; | 69 | clock-names = "div-clk", "fast-clk"; |
| 70 | resets = <&tegra_car 12>; | ||
| 71 | reset-names = "i2c"; | ||
| 72 | dmas = <&apbdma 16>, <&apbdma 16>; | ||
| 73 | dma-names = "rx", "tx"; | ||
| 59 | status = "disabled"; | 74 | status = "disabled"; |
| 60 | }; | 75 | }; |
diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index b1cb3415e6f1..1a1ac2e560e9 100644 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt | |||
| @@ -16,6 +16,7 @@ adt7461 +/-1C TDM Extended Temp Range I.C | |||
| 16 | at,24c08 i2c serial eeprom (24cxx) | 16 | at,24c08 i2c serial eeprom (24cxx) |
| 17 | atmel,24c02 i2c serial eeprom (24cxx) | 17 | atmel,24c02 i2c serial eeprom (24cxx) |
| 18 | atmel,at97sc3204t i2c trusted platform module (TPM) | 18 | atmel,at97sc3204t i2c trusted platform module (TPM) |
| 19 | capella,cm32181 CM32181: Ambient Light Sensor | ||
| 19 | catalyst,24c32 i2c serial eeprom | 20 | catalyst,24c32 i2c serial eeprom |
| 20 | dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock | 21 | dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock |
| 21 | dallas,ds1338 I2C RTC with 56-Byte NV RAM | 22 | dallas,ds1338 I2C RTC with 56-Byte NV RAM |
| @@ -39,6 +40,7 @@ fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec | |||
| 39 | gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface | 40 | gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface |
| 40 | infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz) | 41 | infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz) |
| 41 | infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz) | 42 | infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz) |
| 43 | isl,isl12057 Intersil ISL12057 I2C RTC Chip | ||
| 42 | maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator | 44 | maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator |
| 43 | maxim,max1237 Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs | 45 | maxim,max1237 Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs |
| 44 | maxim,max6625 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface | 46 | maxim,max6625 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface |
diff --git a/Documentation/devicetree/bindings/iio/humidity/dht11.txt b/Documentation/devicetree/bindings/iio/humidity/dht11.txt new file mode 100644 index 000000000000..ecc24c199fd6 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/humidity/dht11.txt | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | * DHT11 humidity/temperature sensor (and compatibles like DHT22) | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "dht11" | ||
| 5 | - gpios: Should specify the GPIO connected to the sensor's data | ||
| 6 | line, see "gpios property" in | ||
| 7 | Documentation/devicetree/bindings/gpio/gpio.txt. | ||
| 8 | |||
| 9 | Example: | ||
| 10 | |||
| 11 | humidity_sensor { | ||
| 12 | compatible = "dht11"; | ||
| 13 | gpios = <&gpio0 6 0>; | ||
| 14 | } | ||
diff --git a/Documentation/devicetree/bindings/iio/light/tsl2563.txt b/Documentation/devicetree/bindings/iio/light/tsl2563.txt new file mode 100644 index 000000000000..f91e809e736e --- /dev/null +++ b/Documentation/devicetree/bindings/iio/light/tsl2563.txt | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | * AMS TAOS TSL2563 ambient light sensor | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - compatible : should be "amstaos,tsl2563" | ||
| 6 | - reg : the I2C address of the sensor | ||
| 7 | |||
| 8 | Optional properties: | ||
| 9 | |||
| 10 | - amstaos,cover-comp-gain : integer used as multiplier for gain | ||
| 11 | compensation (default = 1) | ||
| 12 | |||
| 13 | Example: | ||
| 14 | |||
| 15 | tsl2563@29 { | ||
| 16 | compatible = "amstaos,tsl2563"; | ||
| 17 | reg = <0x29>; | ||
| 18 | amstaos,cover-comp-gain = <16>; | ||
| 19 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/magnetometer/hmc5843.txt b/Documentation/devicetree/bindings/iio/magnetometer/hmc5843.txt new file mode 100644 index 000000000000..90d5f34db04e --- /dev/null +++ b/Documentation/devicetree/bindings/iio/magnetometer/hmc5843.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | * Honeywell HMC5843 magnetometer sensor | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - compatible : should be "honeywell,hmc5843" | ||
| 6 | - reg : the I2C address of the magnetometer - typically 0x1e | ||
| 7 | |||
| 8 | Optional properties: | ||
| 9 | |||
| 10 | - gpios : should be device tree identifier of the magnetometer DRDY pin | ||
| 11 | |||
| 12 | Example: | ||
| 13 | |||
| 14 | hmc5843@1e { | ||
| 15 | compatible = "honeywell,hmc5843" | ||
| 16 | reg = <0x1e>; | ||
| 17 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/gpio-beeper.txt b/Documentation/devicetree/bindings/input/gpio-beeper.txt new file mode 100644 index 000000000000..a5086e37fce6 --- /dev/null +++ b/Documentation/devicetree/bindings/input/gpio-beeper.txt | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | * GPIO beeper device tree bindings | ||
| 2 | |||
| 3 | Register a beeper connected to GPIO pin. | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | - compatible: Should be "gpio-beeper". | ||
| 7 | - gpios: From common gpio binding; gpio connection to beeper enable pin. | ||
| 8 | |||
| 9 | Example: | ||
| 10 | beeper: beeper { | ||
| 11 | compatible = "gpio-beeper"; | ||
| 12 | gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; | ||
| 13 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt index 2995fae7ee47..0382b8bd69c6 100644 --- a/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt +++ b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt | |||
| @@ -13,6 +13,12 @@ Required properties: | |||
| 13 | array of pin numbers which is used as column. | 13 | array of pin numbers which is used as column. |
| 14 | - linux,keymap: The keymap for keys as described in the binding document | 14 | - linux,keymap: The keymap for keys as described in the binding document |
| 15 | devicetree/bindings/input/matrix-keymap.txt. | 15 | devicetree/bindings/input/matrix-keymap.txt. |
| 16 | - clocks: Must contain one entry, for the module clock. | ||
| 17 | See ../clocks/clock-bindings.txt for details. | ||
| 18 | - resets: Must contain an entry for each entry in reset-names. | ||
| 19 | See ../reset/reset.txt for details. | ||
| 20 | - reset-names: Must include the following entries: | ||
| 21 | - kbc | ||
| 16 | 22 | ||
| 17 | Optional properties, in addition to those specified by the shared | 23 | Optional properties, in addition to those specified by the shared |
| 18 | matrix-keyboard bindings: | 24 | matrix-keyboard bindings: |
| @@ -31,6 +37,9 @@ keyboard: keyboard { | |||
| 31 | compatible = "nvidia,tegra20-kbc"; | 37 | compatible = "nvidia,tegra20-kbc"; |
| 32 | reg = <0x7000e200 0x100>; | 38 | reg = <0x7000e200 0x100>; |
| 33 | interrupts = <0 85 0x04>; | 39 | interrupts = <0 85 0x04>; |
| 40 | clocks = <&tegra_car 36>; | ||
| 41 | resets = <&tegra_car 36>; | ||
| 42 | reset-names = "kbc"; | ||
| 34 | nvidia,ghost-filter; | 43 | nvidia,ghost-filter; |
| 35 | nvidia,debounce-delay-ms = <640>; | 44 | nvidia,debounce-delay-ms = <640>; |
| 36 | nvidia,kbc-row-pins = <0 1 2>; /* pin 0, 1, 2 as rows */ | 45 | nvidia,kbc-row-pins = <0 1 2>; /* pin 0, 1, 2 as rows */ |
diff --git a/Documentation/devicetree/bindings/input/touchscreen/tsc2007.txt b/Documentation/devicetree/bindings/input/touchscreen/tsc2007.txt new file mode 100644 index 000000000000..ec365e172236 --- /dev/null +++ b/Documentation/devicetree/bindings/input/touchscreen/tsc2007.txt | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | * Texas Instruments tsc2007 touchscreen controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: must be "ti,tsc2007". | ||
| 5 | - reg: I2C address of the chip. | ||
| 6 | - ti,x-plate-ohms: X-plate resistance in ohms. | ||
| 7 | |||
| 8 | Optional properties: | ||
| 9 | - gpios: the interrupt gpio the chip is connected to (trough the penirq pin). | ||
| 10 | The penirq pin goes to low when the panel is touched. | ||
| 11 | (see GPIO binding[1] for more details). | ||
| 12 | - interrupt-parent: the phandle for the gpio controller | ||
| 13 | (see interrupt binding[0]). | ||
| 14 | - interrupts: (gpio) interrupt to which the chip is connected | ||
| 15 | (see interrupt binding[0]). | ||
| 16 | - ti,max-rt: maximum pressure. | ||
| 17 | - ti,fuzzx: specifies the absolute input fuzz x value. | ||
| 18 | If set, it will permit noise in the data up to +- the value given to the fuzz | ||
| 19 | parameter, that is used to filter noise from the event stream. | ||
| 20 | - ti,fuzzy: specifies the absolute input fuzz y value. | ||
| 21 | - ti,fuzzz: specifies the absolute input fuzz z value. | ||
| 22 | - ti,poll-period: how much time to wait (in milliseconds) before reading again the | ||
| 23 | values from the tsc2007. | ||
| 24 | |||
| 25 | [0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt | ||
| 26 | [1]: Documentation/devicetree/bindings/gpio/gpio.txt | ||
| 27 | |||
| 28 | Example: | ||
| 29 | &i2c1 { | ||
| 30 | /* ... */ | ||
| 31 | tsc2007@49 { | ||
| 32 | compatible = "ti,tsc2007"; | ||
| 33 | reg = <0x49>; | ||
| 34 | interrupt-parent = <&gpio4>; | ||
| 35 | interrupts = <0x0 0x8>; | ||
| 36 | gpios = <&gpio4 0 0>; | ||
| 37 | ti,x-plate-ohms = <180>; | ||
| 38 | }; | ||
| 39 | |||
| 40 | /* ... */ | ||
| 41 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/twl4030-keypad.txt b/Documentation/devicetree/bindings/input/twl4030-keypad.txt new file mode 100644 index 000000000000..e4be2f76a717 --- /dev/null +++ b/Documentation/devicetree/bindings/input/twl4030-keypad.txt | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | * TWL4030's Keypad Controller device tree bindings | ||
| 2 | |||
| 3 | TWL4030's Keypad controller is used to interface a SoC with a matrix-type | ||
| 4 | keypad device. The keypad controller supports multiple row and column lines. | ||
| 5 | A key can be placed at each intersection of a unique row and a unique column. | ||
| 6 | The keypad controller can sense a key-press and key-release and report the | ||
| 7 | event using a interrupt to the cpu. | ||
| 8 | |||
| 9 | This binding is based on the matrix-keymap binding with the following | ||
| 10 | changes: | ||
| 11 | |||
| 12 | * keypad,num-rows and keypad,num-columns are required. | ||
| 13 | |||
| 14 | Required SoC Specific Properties: | ||
| 15 | - compatible: should be one of the following | ||
| 16 | - "ti,twl4030-keypad": For controllers compatible with twl4030 keypad | ||
| 17 | controller. | ||
| 18 | - interrupt: should be one of the following | ||
| 19 | - <1>: For controllers compatible with twl4030 keypad controller. | ||
| 20 | |||
| 21 | Example: | ||
| 22 | twl_keypad: keypad { | ||
| 23 | compatible = "ti,twl4030-keypad"; | ||
| 24 | interrupts = <1>; | ||
| 25 | keypad,num-rows = <8>; | ||
| 26 | keypad,num-columns = <8>; | ||
| 27 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt new file mode 100644 index 000000000000..c864a46cddcf --- /dev/null +++ b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | Texas Instruments TWL family (twl4030) pwrbutton module | ||
| 2 | |||
| 3 | This module is part of the TWL4030. For more details about the whole | ||
| 4 | chip see Documentation/devicetree/bindings/mfd/twl-familly.txt. | ||
| 5 | |||
| 6 | This module provides a simple power button event via an Interrupt. | ||
| 7 | |||
| 8 | Required properties: | ||
| 9 | - compatible: should be one of the following | ||
| 10 | - "ti,twl4030-pwrbutton": For controllers compatible with twl4030 | ||
| 11 | - interrupts: should be one of the following | ||
| 12 | - <8>: For controllers compatible with twl4030 | ||
| 13 | |||
| 14 | Example: | ||
| 15 | |||
| 16 | &twl { | ||
| 17 | twl_pwrbutton: pwrbutton { | ||
| 18 | compatible = "ti,twl4030-pwrbutton"; | ||
| 19 | interrupts = <8>; | ||
| 20 | }; | ||
| 21 | }; | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt index 3d3b2b91e333..32cec4b26cd0 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt | |||
| @@ -14,5 +14,5 @@ intc: interrupt-controller { | |||
| 14 | compatible = "allwinner,sun4i-ic"; | 14 | compatible = "allwinner,sun4i-ic"; |
| 15 | reg = <0x01c20400 0x400>; | 15 | reg = <0x01c20400 0x400>; |
| 16 | interrupt-controller; | 16 | interrupt-controller; |
| 17 | #interrupt-cells = <2>; | 17 | #interrupt-cells = <1>; |
| 18 | }; | 18 | }; |
diff --git a/Documentation/devicetree/bindings/interrupt-controller/lsi,zevio-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/lsi,zevio-intc.txt new file mode 100644 index 000000000000..aee38e7c13e7 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/lsi,zevio-intc.txt | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | TI-NSPIRE interrupt controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Compatible property value should be "lsi,zevio-intc". | ||
| 5 | |||
| 6 | - reg: Physical base address of the controller and length of memory mapped | ||
| 7 | region. | ||
| 8 | |||
| 9 | - interrupt-controller : Identifies the node as an interrupt controller | ||
| 10 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | interrupt-controller { | ||
| 14 | compatible = "lsi,zevio-intc"; | ||
| 15 | interrupt-controller; | ||
| 16 | reg = <0xDC000000 0x1000>; | ||
| 17 | #interrupt-cells = <1>; | ||
| 18 | }; | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/snps,dw-apb-ictl.txt b/Documentation/devicetree/bindings/interrupt-controller/snps,dw-apb-ictl.txt new file mode 100644 index 000000000000..492911744ca3 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/snps,dw-apb-ictl.txt | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | Synopsys DesignWare APB interrupt controller (dw_apb_ictl) | ||
| 2 | |||
| 3 | Synopsys DesignWare provides interrupt controller IP for APB known as | ||
| 4 | dw_apb_ictl. The IP is used as secondary interrupt controller in some SoCs with | ||
| 5 | APB bus, e.g. Marvell Armada 1500. | ||
| 6 | |||
| 7 | Required properties: | ||
| 8 | - compatible: shall be "snps,dw-apb-ictl" | ||
| 9 | - reg: physical base address of the controller and length of memory mapped | ||
| 10 | region starting with ENABLE_LOW register | ||
| 11 | - interrupt-controller: identifies the node as an interrupt controller | ||
| 12 | - #interrupt-cells: number of cells to encode an interrupt-specifier, shall be 1 | ||
| 13 | - interrupts: interrupt reference to primary interrupt controller | ||
| 14 | - interrupt-parent: (optional) reference specific primary interrupt controller | ||
| 15 | |||
| 16 | The interrupt sources map to the corresponding bits in the interrupt | ||
| 17 | registers, i.e. | ||
| 18 | - 0 maps to bit 0 of low interrupts, | ||
| 19 | - 1 maps to bit 1 of low interrupts, | ||
| 20 | - 32 maps to bit 0 of high interrupts, | ||
| 21 | - 33 maps to bit 1 of high interrupts, | ||
| 22 | - (optional) fast interrupts start at 64. | ||
| 23 | |||
| 24 | Example: | ||
| 25 | aic: interrupt-controller@3000 { | ||
| 26 | compatible = "snps,dw-apb-ictl"; | ||
| 27 | reg = <0x3000 0xc00>; | ||
| 28 | interrupt-controller; | ||
| 29 | #interrupt-cells = <1>; | ||
| 30 | interrupt-parent = <&gic>; | ||
| 31 | interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | ||
| 32 | }; | ||
diff --git a/Documentation/devicetree/bindings/leds/tca6507.txt b/Documentation/devicetree/bindings/leds/tca6507.txt index 80ff3dfb1f32..d7221b84987c 100644 --- a/Documentation/devicetree/bindings/leds/tca6507.txt +++ b/Documentation/devicetree/bindings/leds/tca6507.txt | |||
| @@ -2,6 +2,13 @@ LEDs connected to tca6507 | |||
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : should be : "ti,tca6507". | 4 | - compatible : should be : "ti,tca6507". |
| 5 | - #address-cells: must be 1 | ||
| 6 | - #size-cells: must be 0 | ||
| 7 | - reg: typically 0x45. | ||
| 8 | |||
| 9 | Optional properties: | ||
| 10 | - gpio-controller: allows lines to be used as output-only GPIOs. | ||
| 11 | - #gpio-cells: if present, must be 0. | ||
| 5 | 12 | ||
| 6 | Each led is represented as a sub-node of the ti,tca6507 device. | 13 | Each led is represented as a sub-node of the ti,tca6507 device. |
| 7 | 14 | ||
| @@ -10,6 +17,7 @@ LED sub-node properties: | |||
| 10 | - reg : number of LED line (could be from 0 to 6) | 17 | - reg : number of LED line (could be from 0 to 6) |
| 11 | - linux,default-trigger : (optional) | 18 | - linux,default-trigger : (optional) |
| 12 | see Documentation/devicetree/bindings/leds/common.txt | 19 | see Documentation/devicetree/bindings/leds/common.txt |
| 20 | - compatible: either "led" (the default) or "gpio". | ||
| 13 | 21 | ||
| 14 | Examples: | 22 | Examples: |
| 15 | 23 | ||
| @@ -19,6 +27,9 @@ tca6507@45 { | |||
| 19 | #size-cells = <0>; | 27 | #size-cells = <0>; |
| 20 | reg = <0x45>; | 28 | reg = <0x45>; |
| 21 | 29 | ||
| 30 | gpio-controller; | ||
| 31 | #gpio-cells = <2>; | ||
| 32 | |||
| 22 | led0: red-aux@0 { | 33 | led0: red-aux@0 { |
| 23 | label = "red:aux"; | 34 | label = "red:aux"; |
| 24 | reg = <0x0>; | 35 | reg = <0x0>; |
| @@ -29,5 +40,10 @@ tca6507@45 { | |||
| 29 | reg = <0x5>; | 40 | reg = <0x5>; |
| 30 | linux,default-trigger = "default-on"; | 41 | linux,default-trigger = "default-on"; |
| 31 | }; | 42 | }; |
| 43 | |||
| 44 | wifi-reset@6 { | ||
| 45 | reg = <0x6>; | ||
| 46 | compatible = "gpio"; | ||
| 47 | }; | ||
| 32 | }; | 48 | }; |
| 33 | 49 | ||
diff --git a/Documentation/devicetree/bindings/marvell.txt b/Documentation/devicetree/bindings/marvell.txt index f7a0da6b4022..ea2b16ced49b 100644 --- a/Documentation/devicetree/bindings/marvell.txt +++ b/Documentation/devicetree/bindings/marvell.txt | |||
| @@ -79,7 +79,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 79 | Required properties: | 79 | Required properties: |
| 80 | - #address-cells : Should be <1> | 80 | - #address-cells : Should be <1> |
| 81 | - #size-cells : Should be <0> | 81 | - #size-cells : Should be <0> |
| 82 | - device_type : Should be "mdio" | ||
| 83 | - compatible : Should be "marvell,mv64360-mdio" | 82 | - compatible : Should be "marvell,mv64360-mdio" |
| 84 | 83 | ||
| 85 | Example: | 84 | Example: |
| @@ -87,7 +86,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 87 | mdio { | 86 | mdio { |
| 88 | #address-cells = <1>; | 87 | #address-cells = <1>; |
| 89 | #size-cells = <0>; | 88 | #size-cells = <0>; |
| 90 | device_type = "mdio"; | ||
| 91 | compatible = "marvell,mv64360-mdio"; | 89 | compatible = "marvell,mv64360-mdio"; |
| 92 | 90 | ||
| 93 | ethernet-phy@0 { | 91 | ethernet-phy@0 { |
| @@ -132,7 +130,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 132 | Ethernet port node | 130 | Ethernet port node |
| 133 | 131 | ||
| 134 | Required properties: | 132 | Required properties: |
| 135 | - device_type : Should be "network". | ||
| 136 | - compatible : Should be "marvell,mv64360-eth". | 133 | - compatible : Should be "marvell,mv64360-eth". |
| 137 | - reg : Should be <0>, <1>, or <2>, according to which registers | 134 | - reg : Should be <0>, <1>, or <2>, according to which registers |
| 138 | within the silicon block the device uses. | 135 | within the silicon block the device uses. |
| @@ -145,7 +142,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 145 | 142 | ||
| 146 | Example Discovery Ethernet port node: | 143 | Example Discovery Ethernet port node: |
| 147 | ethernet@0 { | 144 | ethernet@0 { |
| 148 | device_type = "network"; | ||
| 149 | compatible = "marvell,mv64360-eth"; | 145 | compatible = "marvell,mv64360-eth"; |
| 150 | reg = <0>; | 146 | reg = <0>; |
| 151 | interrupts = <32>; | 147 | interrupts = <32>; |
| @@ -159,7 +155,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 159 | c) Marvell Discovery PHY nodes | 155 | c) Marvell Discovery PHY nodes |
| 160 | 156 | ||
| 161 | Required properties: | 157 | Required properties: |
| 162 | - device_type : Should be "ethernet-phy" | ||
| 163 | - interrupts : <a> where a is the interrupt number for this phy. | 158 | - interrupts : <a> where a is the interrupt number for this phy. |
| 164 | - interrupt-parent : the phandle for the interrupt controller that | 159 | - interrupt-parent : the phandle for the interrupt controller that |
| 165 | services interrupts for this device. | 160 | services interrupts for this device. |
| @@ -167,7 +162,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 167 | 162 | ||
| 168 | Example Discovery PHY node: | 163 | Example Discovery PHY node: |
| 169 | ethernet-phy@1 { | 164 | ethernet-phy@1 { |
| 170 | device_type = "ethernet-phy"; | ||
| 171 | compatible = "broadcom,bcm5421"; | 165 | compatible = "broadcom,bcm5421"; |
| 172 | interrupts = <76>; /* GPP 12 */ | 166 | interrupts = <76>; /* GPP 12 */ |
| 173 | interrupt-parent = <&PIC>; | 167 | interrupt-parent = <&PIC>; |
| @@ -271,7 +265,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 271 | serial port. | 265 | serial port. |
| 272 | 266 | ||
| 273 | Required properties: | 267 | Required properties: |
| 274 | - device_type : "serial" | ||
| 275 | - compatible : "marvell,mv64360-mpsc" | 268 | - compatible : "marvell,mv64360-mpsc" |
| 276 | - reg : Offset and length of the register set for this device | 269 | - reg : Offset and length of the register set for this device |
| 277 | - sdma : the phandle for the SDMA node used by this port | 270 | - sdma : the phandle for the SDMA node used by this port |
| @@ -288,7 +281,6 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd. | |||
| 288 | 281 | ||
| 289 | Example Discovery MPSCINTR node: | 282 | Example Discovery MPSCINTR node: |
| 290 | mpsc@8000 { | 283 | mpsc@8000 { |
| 291 | device_type = "serial"; | ||
| 292 | compatible = "marvell,mv64360-mpsc"; | 284 | compatible = "marvell,mv64360-mpsc"; |
| 293 | reg = <0x8000 0x38>; | 285 | reg = <0x8000 0x38>; |
| 294 | virtual-reg = <0xf1008000>; | 286 | virtual-reg = <0xf1008000>; |
diff --git a/Documentation/devicetree/bindings/media/exynos-jpeg-codec.txt b/Documentation/devicetree/bindings/media/exynos-jpeg-codec.txt new file mode 100644 index 000000000000..937b755baf8f --- /dev/null +++ b/Documentation/devicetree/bindings/media/exynos-jpeg-codec.txt | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | Samsung S5P/EXYNOS SoC series JPEG codec | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - compatible : should be one of: | ||
| 6 | "samsung,s5pv210-jpeg", "samsung,exynos4210-jpeg"; | ||
| 7 | - reg : address and length of the JPEG codec IP register set; | ||
| 8 | - interrupts : specifies the JPEG codec IP interrupt; | ||
| 9 | - clocks : should contain the JPEG codec IP gate clock specifier, from the | ||
| 10 | common clock bindings; | ||
| 11 | - clock-names : should contain "jpeg" entry. | ||
diff --git a/Documentation/devicetree/bindings/media/samsung-s5k5baf.txt b/Documentation/devicetree/bindings/media/samsung-s5k5baf.txt new file mode 100644 index 000000000000..1f51e0439c96 --- /dev/null +++ b/Documentation/devicetree/bindings/media/samsung-s5k5baf.txt | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | Samsung S5K5BAF UXGA 1/5" 2M CMOS Image Sensor with embedded SoC ISP | ||
| 2 | -------------------------------------------------------------------- | ||
| 3 | |||
| 4 | Required properties: | ||
| 5 | |||
| 6 | - compatible : "samsung,s5k5baf"; | ||
| 7 | - reg : I2C slave address of the sensor; | ||
| 8 | - vdda-supply : analog power supply 2.8V (2.6V to 3.0V); | ||
| 9 | - vddreg-supply : regulator input power supply 1.8V (1.7V to 1.9V) | ||
| 10 | or 2.8V (2.6V to 3.0); | ||
| 11 | - vddio-supply : I/O power supply 1.8V (1.65V to 1.95V) | ||
| 12 | or 2.8V (2.5V to 3.1V); | ||
| 13 | - stbyn-gpios : GPIO connected to STDBYN pin; | ||
| 14 | - rstn-gpios : GPIO connected to RSTN pin; | ||
| 15 | - clocks : list of phandle and clock specifier pairs | ||
| 16 | according to common clock bindings for the | ||
| 17 | clocks described in clock-names; | ||
| 18 | - clock-names : should include "mclk" for the sensor's master clock; | ||
| 19 | |||
| 20 | Optional properties: | ||
| 21 | |||
| 22 | - clock-frequency : the frequency at which the "mclk" clock should be | ||
| 23 | configured to operate, in Hz; if this property is not | ||
| 24 | specified default 24 MHz value will be used. | ||
| 25 | |||
| 26 | The device node should contain one 'port' child node with one child 'endpoint' | ||
| 27 | node, according to the bindings defined in Documentation/devicetree/bindings/ | ||
| 28 | media/video-interfaces.txt. The following are properties specific to those | ||
| 29 | nodes. | ||
| 30 | |||
| 31 | endpoint node | ||
| 32 | ------------- | ||
| 33 | |||
| 34 | - data-lanes : (optional) specifies MIPI CSI-2 data lanes as covered in | ||
| 35 | video-interfaces.txt. If present it should be <1> - the device | ||
| 36 | supports only one data lane without re-mapping. | ||
| 37 | |||
| 38 | Example: | ||
| 39 | |||
| 40 | s5k5bafx@2d { | ||
| 41 | compatible = "samsung,s5k5baf"; | ||
| 42 | reg = <0x2d>; | ||
| 43 | vdda-supply = <&cam_io_en_reg>; | ||
| 44 | vddreg-supply = <&vt_core_15v_reg>; | ||
| 45 | vddio-supply = <&vtcam_reg>; | ||
| 46 | stbyn-gpios = <&gpl2 0 1>; | ||
| 47 | rstn-gpios = <&gpl2 1 1>; | ||
| 48 | clock-names = "mclk"; | ||
| 49 | clocks = <&clock_cam 0>; | ||
| 50 | clock-frequency = <24000000>; | ||
| 51 | |||
| 52 | port { | ||
| 53 | s5k5bafx_ep: endpoint { | ||
| 54 | remote-endpoint = <&csis1_ep>; | ||
| 55 | data-lanes = <1>; | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/as3722.txt b/Documentation/devicetree/bindings/mfd/as3722.txt index fc2191ecfd6b..8edcb9bd873b 100644 --- a/Documentation/devicetree/bindings/mfd/as3722.txt +++ b/Documentation/devicetree/bindings/mfd/as3722.txt | |||
| @@ -112,6 +112,15 @@ Following are properties of regulator subnode. | |||
| 112 | ams,enable-tracking: Enable tracking with SD1, only supported | 112 | ams,enable-tracking: Enable tracking with SD1, only supported |
| 113 | by LDO3. | 113 | by LDO3. |
| 114 | 114 | ||
| 115 | Power-off: | ||
| 116 | ========= | ||
| 117 | AS3722 supports the system power off by turning off all its rail. This | ||
| 118 | is provided through pm_power_off. | ||
| 119 | The device node should have the following properties to enable this | ||
| 120 | functionality | ||
| 121 | ams,system-power-controller: Boolean, to enable the power off functionality | ||
| 122 | through this device. | ||
| 123 | |||
| 115 | Example: | 124 | Example: |
| 116 | -------- | 125 | -------- |
| 117 | #include <dt-bindings/mfd/as3722.h> | 126 | #include <dt-bindings/mfd/as3722.h> |
| @@ -120,6 +129,8 @@ ams3722 { | |||
| 120 | compatible = "ams,as3722"; | 129 | compatible = "ams,as3722"; |
| 121 | reg = <0x48>; | 130 | reg = <0x48>; |
| 122 | 131 | ||
| 132 | ams,system-power-controller; | ||
| 133 | |||
| 123 | interrupt-parent = <&intc>; | 134 | interrupt-parent = <&intc>; |
| 124 | interrupt-controller; | 135 | interrupt-controller; |
| 125 | #interrupt-cells = <2>; | 136 | #interrupt-cells = <2>; |
diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.txt b/Documentation/devicetree/bindings/mfd/cros-ec.txt index 5f229c5f6da9..8009c3d87f33 100644 --- a/Documentation/devicetree/bindings/mfd/cros-ec.txt +++ b/Documentation/devicetree/bindings/mfd/cros-ec.txt | |||
| @@ -17,6 +17,15 @@ Required properties (SPI): | |||
| 17 | - compatible: "google,cros-ec-spi" | 17 | - compatible: "google,cros-ec-spi" |
| 18 | - reg: SPI chip select | 18 | - reg: SPI chip select |
| 19 | 19 | ||
| 20 | Optional properties (SPI): | ||
| 21 | - google,cros-ec-spi-msg-delay: Some implementations of the EC require some | ||
| 22 | additional processing time in order to accept new transactions. If the delay | ||
| 23 | between transactions is not long enough the EC may not be able to respond | ||
| 24 | properly to subsequent transactions and cause them to hang. This property | ||
| 25 | specifies the delay, in usecs, introduced between transactions to account | ||
| 26 | for the time required by the EC to get back into a state in which new data | ||
| 27 | can be accepted. | ||
| 28 | |||
| 20 | Required properties (LPC): | 29 | Required properties (LPC): |
| 21 | - compatible: "google,cros-ec-lpc" | 30 | - compatible: "google,cros-ec-lpc" |
| 22 | - reg: List of (IO address, size) pairs defining the interface uses | 31 | - reg: List of (IO address, size) pairs defining the interface uses |
diff --git a/Documentation/devicetree/bindings/mfd/lp3943.txt b/Documentation/devicetree/bindings/mfd/lp3943.txt new file mode 100644 index 000000000000..e8591d6b11b4 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/lp3943.txt | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | TI/National Semiconductor LP3943 MFD driver | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "ti,lp3943" | ||
| 5 | - reg: I2C slave address. From 0x60 to 0x67. | ||
| 6 | |||
| 7 | LP3943 consists of two sub-devices, lp3943-gpio and lp3943-pwm. | ||
| 8 | |||
| 9 | For the LP3943 GPIO properties please refer to: | ||
| 10 | Documentation/devicetree/bindings/gpio/gpio-lp3943.txt | ||
| 11 | |||
| 12 | For the LP3943 PWM properties please refer to: | ||
| 13 | Documentation/devicetree/bindings/pwm/pwm-lp3943.txt | ||
| 14 | |||
| 15 | Example: | ||
| 16 | |||
| 17 | lp3943@60 { | ||
| 18 | compatible = "ti,lp3943"; | ||
| 19 | reg = <0x60>; | ||
| 20 | |||
| 21 | gpioex: gpio { | ||
| 22 | compatible = "ti,lp3943-gpio"; | ||
| 23 | gpio-controller; | ||
| 24 | #gpio-cells = <2>; | ||
| 25 | }; | ||
| 26 | |||
| 27 | pwm3943: pwm { | ||
| 28 | compatible = "ti,lp3943-pwm"; | ||
| 29 | #pwm-cells = <2>; | ||
| 30 | ti,pwm0 = <8 9 10>; | ||
| 31 | ti,pwm1 = <15>; | ||
| 32 | }; | ||
| 33 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/max77686.txt b/Documentation/devicetree/bindings/mfd/max77686.txt index c6a3469d3436..678f3cf0b8f0 100644 --- a/Documentation/devicetree/bindings/mfd/max77686.txt +++ b/Documentation/devicetree/bindings/mfd/max77686.txt | |||
| @@ -7,6 +7,9 @@ different i2c slave address,presently for which we are statically creating i2c | |||
| 7 | client while probing.This document describes the binding for mfd device and | 7 | client while probing.This document describes the binding for mfd device and |
| 8 | PMIC submodule. | 8 | PMIC submodule. |
| 9 | 9 | ||
| 10 | Binding for the built-in 32k clock generator block is defined separately | ||
| 11 | in bindings/clk/maxim,max77686.txt file. | ||
| 12 | |||
| 10 | Required properties: | 13 | Required properties: |
| 11 | - compatible : Must be "maxim,max77686"; | 14 | - compatible : Must be "maxim,max77686"; |
| 12 | - reg : Specifies the i2c slave address of PMIC block. | 15 | - reg : Specifies the i2c slave address of PMIC block. |
diff --git a/Documentation/devicetree/bindings/mfd/s2mpa01.txt b/Documentation/devicetree/bindings/mfd/s2mpa01.txt new file mode 100644 index 000000000000..c13d3d8c3947 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/s2mpa01.txt | |||
| @@ -0,0 +1,90 @@ | |||
| 1 | |||
| 2 | * Samsung S2MPA01 Voltage and Current Regulator | ||
| 3 | |||
| 4 | The Samsung S2MPA01 is a multi-function device which includes high | ||
| 5 | efficiency buck converters including Dual-Phase buck converter, various LDOs, | ||
| 6 | and an RTC. It is interfaced to the host controller using an I2C interface. | ||
| 7 | Each sub-block is addressed by the host system using different I2C slave | ||
| 8 | addresses. | ||
| 9 | |||
| 10 | Required properties: | ||
| 11 | - compatible: Should be "samsung,s2mpa01-pmic". | ||
| 12 | - reg: Specifies the I2C slave address of the PMIC block. It should be 0x66. | ||
| 13 | |||
| 14 | Optional properties: | ||
| 15 | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
| 16 | the interrupts from s2mpa01 are delivered to. | ||
| 17 | - interrupts: An interrupt specifier for the sole interrupt generated by the | ||
| 18 | device. | ||
| 19 | |||
| 20 | Optional nodes: | ||
| 21 | - regulators: The regulators of s2mpa01 that have to be instantiated should be | ||
| 22 | included in a sub-node named 'regulators'. Regulator nodes and constraints | ||
| 23 | included in this sub-node use the standard regulator bindings which are | ||
| 24 | documented elsewhere. | ||
| 25 | |||
| 26 | Properties for BUCK regulator nodes: | ||
| 27 | - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500 | ||
| 28 | (default), 25000, or 50000. May be 0 for disabling the ramp delay on | ||
| 29 | BUCK{1,2,3,4}. | ||
| 30 | |||
| 31 | In the absence of the regulator-ramp-delay property, the default ramp | ||
| 32 | delay will be used. | ||
| 33 | |||
| 34 | NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set | ||
| 35 | for a particular group of BUCKs. So provide same regulator-ramp-delay=<value>. | ||
| 36 | |||
| 37 | The following BUCKs share ramp settings: | ||
| 38 | * 1 and 6 | ||
| 39 | * 2 and 4 | ||
| 40 | * 8, 9, and 10 | ||
| 41 | |||
| 42 | The following are the names of the regulators that the s2mpa01 PMIC block | ||
| 43 | supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | ||
| 44 | as per the datasheet of s2mpa01. | ||
| 45 | |||
| 46 | - LDOn | ||
| 47 | - valid values for n are 1 to 26 | ||
| 48 | - Example: LDO1, LD02, LDO26 | ||
| 49 | - BUCKn | ||
| 50 | - valid values for n are 1 to 10. | ||
| 51 | - Example: BUCK1, BUCK2, BUCK9 | ||
| 52 | |||
| 53 | Example: | ||
| 54 | |||
| 55 | s2mpa01_pmic@66 { | ||
| 56 | compatible = "samsung,s2mpa01-pmic"; | ||
| 57 | reg = <0x66>; | ||
| 58 | |||
| 59 | regulators { | ||
| 60 | ldo1_reg: LDO1 { | ||
| 61 | regulator-name = "VDD_ALIVE"; | ||
| 62 | regulator-min-microvolt = <1000000>; | ||
| 63 | regulator-max-microvolt = <1000000>; | ||
| 64 | }; | ||
| 65 | |||
| 66 | ldo2_reg: LDO2 { | ||
| 67 | regulator-name = "VDDQ_MMC2"; | ||
| 68 | regulator-min-microvolt = <2800000>; | ||
| 69 | regulator-max-microvolt = <2800000>; | ||
| 70 | regulator-always-on; | ||
| 71 | }; | ||
| 72 | |||
| 73 | buck1_reg: BUCK1 { | ||
| 74 | regulator-name = "vdd_mif"; | ||
| 75 | regulator-min-microvolt = <950000>; | ||
| 76 | regulator-max-microvolt = <1350000>; | ||
| 77 | regulator-always-on; | ||
| 78 | regulator-boot-on; | ||
| 79 | }; | ||
| 80 | |||
| 81 | buck2_reg: BUCK2 { | ||
| 82 | regulator-name = "vdd_arm"; | ||
| 83 | regulator-min-microvolt = <950000>; | ||
| 84 | regulator-max-microvolt = <1350000>; | ||
| 85 | regulator-always-on; | ||
| 86 | regulator-boot-on; | ||
| 87 | regulator-ramp-delay = <50000>; | ||
| 88 | }; | ||
| 89 | }; | ||
| 90 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt index 78a840d7510d..f69bec294f02 100644 --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | 1 | ||
| 2 | * Samsung S2MPS11 Voltage and Current Regulator | 2 | * Samsung S2MPS11 and S2MPS14 Voltage and Current Regulator |
| 3 | 3 | ||
| 4 | The Samsung S2MPS11 is a multi-function device which includes voltage and | 4 | The Samsung S2MPS11 is a multi-function device which includes voltage and |
| 5 | current regulators, RTC, charger controller and other sub-blocks. It is | 5 | current regulators, RTC, charger controller and other sub-blocks. It is |
| @@ -7,7 +7,7 @@ interfaced to the host controller using an I2C interface. Each sub-block is | |||
| 7 | addressed by the host system using different I2C slave addresses. | 7 | addressed by the host system using different I2C slave addresses. |
| 8 | 8 | ||
| 9 | Required properties: | 9 | Required properties: |
| 10 | - compatible: Should be "samsung,s2mps11-pmic". | 10 | - compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps14-pmic". |
| 11 | - reg: Specifies the I2C slave address of the pmic block. It should be 0x66. | 11 | - reg: Specifies the I2C slave address of the pmic block. It should be 0x66. |
| 12 | 12 | ||
| 13 | Optional properties: | 13 | Optional properties: |
| @@ -59,10 +59,14 @@ supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | |||
| 59 | as per the datasheet of s2mps11. | 59 | as per the datasheet of s2mps11. |
| 60 | 60 | ||
| 61 | - LDOn | 61 | - LDOn |
| 62 | - valid values for n are 1 to 38 | 62 | - valid values for n are: |
| 63 | - Example: LDO0, LD01, LDO28 | 63 | - S2MPS11: 1 to 38 |
| 64 | - S2MPS14: 1 to 25 | ||
| 65 | - Example: LDO1, LD02, LDO28 | ||
| 64 | - BUCKn | 66 | - BUCKn |
| 65 | - valid values for n are 1 to 10. | 67 | - valid values for n are: |
| 68 | - S2MPS11: 1 to 10 | ||
| 69 | - S2MPS14: 1 to 5 | ||
| 66 | - Example: BUCK1, BUCK2, BUCK9 | 70 | - Example: BUCK1, BUCK2, BUCK9 |
| 67 | 71 | ||
| 68 | Example: | 72 | Example: |
diff --git a/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt b/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt new file mode 100644 index 000000000000..973c27273772 --- /dev/null +++ b/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt | |||
| @@ -0,0 +1,98 @@ | |||
| 1 | MIPI DSI (Display Serial Interface) busses | ||
| 2 | ========================================== | ||
| 3 | |||
| 4 | The MIPI Display Serial Interface specifies a serial bus and a protocol for | ||
| 5 | communication between a host and up to four peripherals. This document will | ||
| 6 | define the syntax used to represent a DSI bus in a device tree. | ||
| 7 | |||
| 8 | This document describes DSI bus-specific properties only or defines existing | ||
| 9 | standard properties in the context of the DSI bus. | ||
| 10 | |||
| 11 | Each DSI host provides a DSI bus. The DSI host controller's node contains a | ||
| 12 | set of properties that characterize the bus. Child nodes describe individual | ||
| 13 | peripherals on that bus. | ||
| 14 | |||
| 15 | The following assumes that only a single peripheral is connected to a DSI | ||
| 16 | host. Experience shows that this is true for the large majority of setups. | ||
| 17 | |||
| 18 | DSI host | ||
| 19 | -------- | ||
| 20 | |||
| 21 | In addition to the standard properties and those defined by the parent bus of | ||
| 22 | a DSI host, the following properties apply to a node representing a DSI host. | ||
| 23 | |||
| 24 | Required properties: | ||
| 25 | - #address-cells: The number of cells required to represent an address on the | ||
| 26 | bus. DSI peripherals are addressed using a 2-bit virtual channel number, so | ||
| 27 | a maximum of 4 devices can be addressed on a single bus. Hence the value of | ||
| 28 | this property should be 1. | ||
| 29 | - #size-cells: Should be 0. There are cases where it makes sense to use a | ||
| 30 | different value here. See below. | ||
| 31 | |||
| 32 | DSI peripheral | ||
| 33 | -------------- | ||
| 34 | |||
| 35 | Peripherals are represented as child nodes of the DSI host's node. Properties | ||
| 36 | described here apply to all DSI peripherals, but individual bindings may want | ||
| 37 | to define additional, device-specific properties. | ||
| 38 | |||
| 39 | Required properties: | ||
| 40 | - reg: The virtual channel number of a DSI peripheral. Must be in the range | ||
| 41 | from 0 to 3. | ||
| 42 | |||
| 43 | Some DSI peripherals respond to more than a single virtual channel. In that | ||
| 44 | case two alternative representations can be chosen: | ||
| 45 | - The reg property can take multiple entries, one for each virtual channel | ||
| 46 | that the peripheral responds to. | ||
| 47 | - If the virtual channels that a peripheral responds to are consecutive, the | ||
| 48 | #size-cells can be set to 1. The first cell of each entry in the reg | ||
| 49 | property is the number of the first virtual channel and the second cell is | ||
| 50 | the number of consecutive virtual channels. | ||
| 51 | |||
| 52 | Example | ||
| 53 | ------- | ||
| 54 | |||
| 55 | dsi-host { | ||
| 56 | ... | ||
| 57 | |||
| 58 | #address-cells = <1>; | ||
| 59 | #size-cells = <0>; | ||
| 60 | |||
| 61 | /* peripheral responds to virtual channel 0 */ | ||
| 62 | peripheral@0 { | ||
| 63 | compatible = "..."; | ||
| 64 | reg = <0>; | ||
| 65 | }; | ||
| 66 | |||
| 67 | ... | ||
| 68 | }; | ||
| 69 | |||
| 70 | dsi-host { | ||
| 71 | ... | ||
| 72 | |||
| 73 | #address-cells = <1>; | ||
| 74 | #size-cells = <0>; | ||
| 75 | |||
| 76 | /* peripheral responds to virtual channels 0 and 2 */ | ||
| 77 | peripheral@0 { | ||
| 78 | compatible = "..."; | ||
| 79 | reg = <0, 2>; | ||
| 80 | }; | ||
| 81 | |||
| 82 | ... | ||
| 83 | }; | ||
| 84 | |||
| 85 | dsi-host { | ||
| 86 | ... | ||
| 87 | |||
| 88 | #address-cells = <1>; | ||
| 89 | #size-cells = <1>; | ||
| 90 | |||
| 91 | /* peripheral responds to virtual channels 1, 2 and 3 */ | ||
| 92 | peripheral@1 { | ||
| 93 | compatible = "..."; | ||
| 94 | reg = <1 3>; | ||
| 95 | }; | ||
| 96 | |||
| 97 | ... | ||
| 98 | }; | ||
diff --git a/Documentation/devicetree/bindings/mipi/nvidia,tegra114-mipi.txt b/Documentation/devicetree/bindings/mipi/nvidia,tegra114-mipi.txt new file mode 100644 index 000000000000..e4a25cedc5cf --- /dev/null +++ b/Documentation/devicetree/bindings/mipi/nvidia,tegra114-mipi.txt | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | NVIDIA Tegra MIPI pad calibration controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "nvidia,tegra<chip>-mipi" | ||
| 5 | - reg: Physical base address and length of the controller's registers. | ||
| 6 | - clocks: Must contain an entry for each entry in clock-names. | ||
| 7 | See ../clocks/clock-bindings.txt for details. | ||
| 8 | - clock-names: Must include the following entries: | ||
| 9 | - mipi-cal | ||
| 10 | - #nvidia,mipi-calibrate-cells: Should be 1. The cell is a bitmask of the pads | ||
| 11 | that need to be calibrated for a given device. | ||
| 12 | |||
| 13 | User nodes need to contain an nvidia,mipi-calibrate property that has a | ||
| 14 | phandle to refer to the calibration controller node and a bitmask of the pads | ||
| 15 | that need to be calibrated. | ||
| 16 | |||
| 17 | Example: | ||
| 18 | |||
| 19 | mipi: mipi@700e3000 { | ||
| 20 | compatible = "nvidia,tegra114-mipi"; | ||
| 21 | reg = <0x700e3000 0x100>; | ||
| 22 | clocks = <&tegra_car TEGRA114_CLK_MIPI_CAL>; | ||
| 23 | clock-names = "mipi-cal"; | ||
| 24 | #nvidia,mipi-calibrate-cells = <1>; | ||
| 25 | }; | ||
| 26 | |||
| 27 | ... | ||
| 28 | |||
| 29 | host1x@50000000 { | ||
| 30 | ... | ||
| 31 | |||
| 32 | dsi@54300000 { | ||
| 33 | ... | ||
| 34 | |||
| 35 | nvidia,mipi-calibrate = <&mipi 0x060>; | ||
| 36 | |||
| 37 | ... | ||
| 38 | }; | ||
| 39 | |||
| 40 | ... | ||
| 41 | }; | ||
diff --git a/Documentation/devicetree/bindings/misc/atmel-ssc.txt b/Documentation/devicetree/bindings/misc/atmel-ssc.txt index a45ae08c8ed1..60960b2755f4 100644 --- a/Documentation/devicetree/bindings/misc/atmel-ssc.txt +++ b/Documentation/devicetree/bindings/misc/atmel-ssc.txt | |||
| @@ -6,6 +6,9 @@ Required properties: | |||
| 6 | - atmel,at91sam9g45-ssc: support dma transfer | 6 | - atmel,at91sam9g45-ssc: support dma transfer |
| 7 | - reg: Should contain SSC registers location and length | 7 | - reg: Should contain SSC registers location and length |
| 8 | - interrupts: Should contain SSC interrupt | 8 | - interrupts: Should contain SSC interrupt |
| 9 | - clock-names: tuple listing input clock names. | ||
| 10 | Required elements: "pclk" | ||
| 11 | - clocks: phandles to input clocks. | ||
| 9 | 12 | ||
| 10 | 13 | ||
| 11 | Required properties for devices compatible with "atmel,at91sam9g45-ssc": | 14 | Required properties for devices compatible with "atmel,at91sam9g45-ssc": |
| @@ -20,6 +23,8 @@ ssc0: ssc@fffbc000 { | |||
| 20 | compatible = "atmel,at91rm9200-ssc"; | 23 | compatible = "atmel,at91rm9200-ssc"; |
| 21 | reg = <0xfffbc000 0x4000>; | 24 | reg = <0xfffbc000 0x4000>; |
| 22 | interrupts = <14 4 5>; | 25 | interrupts = <14 4 5>; |
| 26 | clocks = <&ssc0_clk>; | ||
| 27 | clock-names = "pclk"; | ||
| 23 | }; | 28 | }; |
| 24 | 29 | ||
| 25 | - DMA transfer: | 30 | - DMA transfer: |
diff --git a/Documentation/devicetree/bindings/misc/bmp085.txt b/Documentation/devicetree/bindings/misc/bmp085.txt index 91dfda2e4e11..d7a6deb6b21e 100644 --- a/Documentation/devicetree/bindings/misc/bmp085.txt +++ b/Documentation/devicetree/bindings/misc/bmp085.txt | |||
| @@ -8,6 +8,8 @@ Optional properties: | |||
| 8 | - temp-measurement-period: temperature measurement period (milliseconds) | 8 | - temp-measurement-period: temperature measurement period (milliseconds) |
| 9 | - default-oversampling: default oversampling value to be used at startup, | 9 | - default-oversampling: default oversampling value to be used at startup, |
| 10 | value range is 0-3 with rising sensitivity. | 10 | value range is 0-3 with rising sensitivity. |
| 11 | - interrupt-parent: should be the phandle for the interrupt controller | ||
| 12 | - interrupts: interrupt mapping for IRQ | ||
| 11 | 13 | ||
| 12 | Example: | 14 | Example: |
| 13 | 15 | ||
| @@ -17,4 +19,6 @@ pressure@77 { | |||
| 17 | chip-id = <10>; | 19 | chip-id = <10>; |
| 18 | temp-measurement-period = <100>; | 20 | temp-measurement-period = <100>; |
| 19 | default-oversampling = <2>; | 21 | default-oversampling = <2>; |
| 22 | interrupt-parent = <&gpio0>; | ||
| 23 | interrupts = <25 IRQ_TYPE_EDGE_RISING>; | ||
| 20 | }; | 24 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt new file mode 100644 index 000000000000..98ee2abbe138 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | Device Tree Bindings for the Arasan SDHCI Controller | ||
| 2 | |||
| 3 | The bindings follow the mmc[1], clock[2] and interrupt[3] bindings. Only | ||
| 4 | deviations are documented here. | ||
| 5 | |||
| 6 | [1] Documentation/devicetree/bindings/mmc/mmc.txt | ||
| 7 | [2] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 8 | [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt | ||
| 9 | |||
| 10 | Required Properties: | ||
| 11 | - compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' | ||
| 12 | - reg: From mmc bindings: Register location and length. | ||
| 13 | - clocks: From clock bindings: Handles to clock inputs. | ||
| 14 | - clock-names: From clock bindings: Tuple including "clk_xin" and "clk_ahb" | ||
| 15 | - interrupts: Interrupt specifier | ||
| 16 | - interrupt-parent: Phandle for the interrupt controller that services | ||
| 17 | interrupts for this device. | ||
| 18 | |||
| 19 | Example: | ||
| 20 | sdhci@e0100000 { | ||
| 21 | compatible = "arasan,sdhci-8.9a"; | ||
| 22 | reg = <0xe0100000 0x1000>; | ||
| 23 | clock-names = "clk_xin", "clk_ahb"; | ||
| 24 | clocks = <&clkc 21>, <&clkc 32>; | ||
| 25 | interrupt-parent = <&gic>; | ||
| 26 | interrupts = <0 24 4>; | ||
| 27 | } ; | ||
diff --git a/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt b/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt index 0a85c70cd30a..07ad02075a93 100644 --- a/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt +++ b/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt | |||
| @@ -13,6 +13,9 @@ Required properties: | |||
| 13 | - #address-cells: should be one. The cell is the slot id. | 13 | - #address-cells: should be one. The cell is the slot id. |
| 14 | - #size-cells: should be zero. | 14 | - #size-cells: should be zero. |
| 15 | - at least one slot node | 15 | - at least one slot node |
| 16 | - clock-names: tuple listing input clock names. | ||
| 17 | Required elements: "mci_clk" | ||
| 18 | - clocks: phandles to input clocks. | ||
| 16 | 19 | ||
| 17 | The node contains child nodes for each slot that the platform uses | 20 | The node contains child nodes for each slot that the platform uses |
| 18 | 21 | ||
| @@ -24,6 +27,8 @@ mmc0: mmc@f0008000 { | |||
| 24 | interrupts = <12 4>; | 27 | interrupts = <12 4>; |
| 25 | #address-cells = <1>; | 28 | #address-cells = <1>; |
| 26 | #size-cells = <0>; | 29 | #size-cells = <0>; |
| 30 | clock-names = "mci_clk"; | ||
| 31 | clocks = <&mci0_clk>; | ||
| 27 | 32 | ||
| 28 | [ child node definitions...] | 33 | [ child node definitions...] |
| 29 | }; | 34 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt index c67b975c8906..532b1d440abc 100644 --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt | |||
| @@ -16,6 +16,8 @@ Required Properties: | |||
| 16 | specific extensions. | 16 | specific extensions. |
| 17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | 17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 |
| 18 | specific extensions. | 18 | specific extensions. |
| 19 | - "samsung,exynos5420-dw-mshc": for controllers with Samsung Exynos5420 | ||
| 20 | specific extensions. | ||
| 19 | 21 | ||
| 20 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | 22 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface |
| 21 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and | 23 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and |
diff --git a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt new file mode 100644 index 000000000000..b8653ea97957 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | * Hisilicon specific extensions to the Synopsys Designware Mobile | ||
| 2 | Storage Host Controller | ||
| 3 | |||
| 4 | Read synopsys-dw-mshc.txt for more details | ||
| 5 | |||
| 6 | The Synopsys designware mobile storage host controller is used to interface | ||
| 7 | a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | ||
| 8 | differences between the core Synopsys dw mshc controller properties described | ||
| 9 | by synopsys-dw-mshc.txt and the properties used by the Hisilicon specific | ||
| 10 | extensions to the Synopsys Designware Mobile Storage Host Controller. | ||
| 11 | |||
| 12 | Required Properties: | ||
| 13 | |||
| 14 | * compatible: should be one of the following. | ||
| 15 | - "hisilicon,hi4511-dw-mshc": for controllers with hi4511 specific extentions. | ||
| 16 | |||
| 17 | Example: | ||
| 18 | |||
| 19 | /* for Hi3620 */ | ||
| 20 | |||
| 21 | /* SoC portion */ | ||
| 22 | dwmmc_0: dwmmc0@fcd03000 { | ||
| 23 | compatible = "hisilicon,hi4511-dw-mshc"; | ||
| 24 | reg = <0xfcd03000 0x1000>; | ||
| 25 | interrupts = <0 16 4>; | ||
| 26 | #address-cells = <1>; | ||
| 27 | #size-cells = <0>; | ||
| 28 | clocks = <&mmc_clock HI3620_SD_CIUCLK>, <&clock HI3620_DDRC_PER_CLK>; | ||
| 29 | clock-names = "ciu", "biu"; | ||
| 30 | }; | ||
| 31 | |||
| 32 | /* Board portion */ | ||
| 33 | dwmmc0@fcd03000 { | ||
| 34 | num-slots = <1>; | ||
| 35 | vmmc-supply = <&ldo12>; | ||
| 36 | fifo-depth = <0x100>; | ||
| 37 | supports-highspeed; | ||
| 38 | pinctrl-names = "default"; | ||
| 39 | pinctrl-0 = <&sd_pmx_pins &sd_cfg_func1 &sd_cfg_func2>; | ||
| 40 | slot@0 { | ||
| 41 | reg = <0>; | ||
| 42 | bus-width = <4>; | ||
| 43 | disable-wp; | ||
| 44 | cd-gpios = <&gpio10 3 0>; | ||
| 45 | }; | ||
| 46 | }; | ||
diff --git a/Documentation/devicetree/bindings/mmc/kona-sdhci.txt b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt index 789fb07a426d..aaba2483b4ff 100644 --- a/Documentation/devicetree/bindings/mmc/kona-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt | |||
| @@ -6,12 +6,16 @@ and the properties present in the bcm281xx SDHCI | |||
| 6 | Required properties: | 6 | Required properties: |
| 7 | - compatible : Should be "brcm,kona-sdhci" | 7 | - compatible : Should be "brcm,kona-sdhci" |
| 8 | - DEPRECATED: compatible : Should be "bcm,kona-sdhci" | 8 | - DEPRECATED: compatible : Should be "bcm,kona-sdhci" |
| 9 | - clocks: phandle + clock specifier pair of the external clock | ||
| 10 | |||
| 11 | Refer to clocks/clock-bindings.txt for generic clock consumer properties. | ||
| 9 | 12 | ||
| 10 | Example: | 13 | Example: |
| 11 | 14 | ||
| 12 | sdio2: sdio@0x3f1a0000 { | 15 | sdio2: sdio@0x3f1a0000 { |
| 13 | compatible = "brcm,kona-sdhci"; | 16 | compatible = "brcm,kona-sdhci"; |
| 14 | reg = <0x3f1a0000 0x10000>; | 17 | reg = <0x3f1a0000 0x10000>; |
| 18 | clocks = <&sdio3_clk>; | ||
| 15 | interrupts = <0x0 74 0x4>; | 19 | interrupts = <0x0 74 0x4>; |
| 16 | }; | 20 | }; |
| 17 | 21 | ||
diff --git a/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt index c6d7b11db9eb..f357c16ea815 100644 --- a/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt | |||
| @@ -8,6 +8,12 @@ by mmc.txt and the properties used by the sdhci-tegra driver. | |||
| 8 | 8 | ||
| 9 | Required properties: | 9 | Required properties: |
| 10 | - compatible : Should be "nvidia,<chip>-sdhci" | 10 | - compatible : Should be "nvidia,<chip>-sdhci" |
| 11 | - clocks : Must contain one entry, for the module clock. | ||
| 12 | See ../clocks/clock-bindings.txt for details. | ||
| 13 | - resets : Must contain an entry for each entry in reset-names. | ||
| 14 | See ../reset/reset.txt for details. | ||
| 15 | - reset-names : Must include the following entries: | ||
| 16 | - sdhci | ||
| 11 | 17 | ||
| 12 | Optional properties: | 18 | Optional properties: |
| 13 | - power-gpios : Specify GPIOs for power control | 19 | - power-gpios : Specify GPIOs for power control |
| @@ -18,6 +24,9 @@ sdhci@c8000200 { | |||
| 18 | compatible = "nvidia,tegra20-sdhci"; | 24 | compatible = "nvidia,tegra20-sdhci"; |
| 19 | reg = <0xc8000200 0x200>; | 25 | reg = <0xc8000200 0x200>; |
| 20 | interrupts = <47>; | 26 | interrupts = <47>; |
| 27 | clocks = <&tegra_car 14>; | ||
| 28 | resets = <&tegra_car 14>; | ||
| 29 | reset-names = "sdhci"; | ||
| 21 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 30 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
| 22 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 31 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
| 23 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ | 32 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ |
diff --git a/Documentation/devicetree/bindings/mtd/davinci-nand.txt b/Documentation/devicetree/bindings/mtd/davinci-nand.txt new file mode 100644 index 000000000000..cfb18abe6001 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/davinci-nand.txt | |||
| @@ -0,0 +1,94 @@ | |||
| 1 | Device tree bindings for Texas instruments Davinci/Keystone NAND controller | ||
| 2 | |||
| 3 | This file provides information, what the device node for the davinci/keystone | ||
| 4 | NAND interface contains. | ||
| 5 | |||
| 6 | Documentation: | ||
| 7 | Davinci DM646x - http://www.ti.com/lit/ug/sprueq7c/sprueq7c.pdf | ||
| 8 | Kestone - http://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf | ||
| 9 | |||
| 10 | Required properties: | ||
| 11 | |||
| 12 | - compatible: "ti,davinci-nand" | ||
| 13 | "ti,keystone-nand" | ||
| 14 | |||
| 15 | - reg: Contains 2 offset/length values: | ||
| 16 | - offset and length for the access window. | ||
| 17 | - offset and length for accessing the AEMIF | ||
| 18 | control registers. | ||
| 19 | |||
| 20 | - ti,davinci-chipselect: number of chipselect. Indicates on the | ||
| 21 | davinci_nand driver which chipselect is used | ||
| 22 | for accessing the nand. | ||
| 23 | Can be in the range [0-3]. | ||
| 24 | |||
| 25 | Recommended properties : | ||
| 26 | |||
| 27 | - ti,davinci-mask-ale: mask for ALE. Needed for executing address | ||
| 28 | phase. These offset will be added to the base | ||
| 29 | address for the chip select space the NAND Flash | ||
| 30 | device is connected to. | ||
| 31 | If not set equal to 0x08. | ||
| 32 | |||
| 33 | - ti,davinci-mask-cle: mask for CLE. Needed for executing command | ||
| 34 | phase. These offset will be added to the base | ||
| 35 | address for the chip select space the NAND Flash | ||
| 36 | device is connected to. | ||
| 37 | If not set equal to 0x10. | ||
| 38 | |||
| 39 | - ti,davinci-mask-chipsel: mask for chipselect address. Needed to mask | ||
| 40 | addresses for given chipselect. | ||
| 41 | |||
| 42 | - nand-ecc-mode: operation mode of the NAND ecc mode. ECC mode | ||
| 43 | valid values for davinci driver: | ||
| 44 | - "none" | ||
| 45 | - "soft" | ||
| 46 | - "hw" | ||
| 47 | |||
| 48 | - ti,davinci-ecc-bits: used ECC bits, currently supported 1 or 4. | ||
| 49 | |||
| 50 | - nand-bus-width: buswidth 8 or 16. If not present 8. | ||
| 51 | |||
| 52 | - nand-on-flash-bbt: use flash based bad block table support. OOB | ||
| 53 | identifier is saved in OOB area. If not present | ||
| 54 | false. | ||
| 55 | |||
| 56 | Deprecated properties: | ||
| 57 | |||
| 58 | - ti,davinci-ecc-mode: operation mode of the NAND ecc mode. ECC mode | ||
| 59 | valid values for davinci driver: | ||
| 60 | - "none" | ||
| 61 | - "soft" | ||
| 62 | - "hw" | ||
| 63 | |||
| 64 | - ti,davinci-nand-buswidth: buswidth 8 or 16. If not present 8. | ||
| 65 | |||
| 66 | - ti,davinci-nand-use-bbt: use flash based bad block table support. OOB | ||
| 67 | identifier is saved in OOB area. If not present | ||
| 68 | false. | ||
| 69 | |||
| 70 | Nand device bindings may contain additional sub-nodes describing partitions of | ||
| 71 | the address space. See partition.txt for more detail. The NAND Flash timing | ||
| 72 | values must be programmed in the chip select’s node of AEMIF | ||
| 73 | memory-controller (see Documentation/devicetree/bindings/memory-controllers/ | ||
| 74 | davinci-aemif.txt). | ||
| 75 | |||
| 76 | Example(da850 EVM ): | ||
| 77 | |||
| 78 | nand_cs3@62000000 { | ||
| 79 | compatible = "ti,davinci-nand"; | ||
| 80 | reg = <0x62000000 0x807ff | ||
| 81 | 0x68000000 0x8000>; | ||
| 82 | ti,davinci-chipselect = <1>; | ||
| 83 | ti,davinci-mask-ale = <0>; | ||
| 84 | ti,davinci-mask-cle = <0>; | ||
| 85 | ti,davinci-mask-chipsel = <0>; | ||
| 86 | nand-ecc-mode = "hw"; | ||
| 87 | ti,davinci-ecc-bits = <4>; | ||
| 88 | nand-on-flash-bbt; | ||
| 89 | |||
| 90 | partition@180000 { | ||
| 91 | label = "ubifs"; | ||
| 92 | reg = <0x180000 0x7e80000>; | ||
| 93 | }; | ||
| 94 | }; | ||
diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt index 551b2a179d01..458d59634688 100644 --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt | |||
| @@ -17,6 +17,14 @@ Required properties: | |||
| 17 | Optional properties: | 17 | Optional properties: |
| 18 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not | 18 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not |
| 19 | present false | 19 | present false |
| 20 | - fsl,use-minimum-ecc: Protect this NAND flash with the minimum ECC | ||
| 21 | strength required. The required ECC strength is | ||
| 22 | automatically discoverable for some flash | ||
| 23 | (e.g., according to the ONFI standard). | ||
| 24 | However, note that if this strength is not | ||
| 25 | discoverable or this property is not enabled, | ||
| 26 | the software may chooses an implementation-defined | ||
| 27 | ECC scheme. | ||
| 20 | 28 | ||
| 21 | The device tree may optionally contain sub-nodes describing partitions of the | 29 | The device tree may optionally contain sub-nodes describing partitions of the |
| 22 | address space. See partition.txt for more detail. | 30 | address space. See partition.txt for more detail. |
diff --git a/Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt b/Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt index f1421e2bbab7..86e0a5601ff5 100644 --- a/Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt +++ b/Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt | |||
| @@ -2,7 +2,9 @@ PXA3xx NAND DT bindings | |||
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | 4 | ||
| 5 | - compatible: Should be "marvell,pxa3xx-nand" | 5 | - compatible: Should be set to one of the following: |
| 6 | marvell,pxa3xx-nand | ||
| 7 | marvell,armada370-nand | ||
| 6 | - reg: The register base for the controller | 8 | - reg: The register base for the controller |
| 7 | - interrupts: The interrupt to map | 9 | - interrupts: The interrupt to map |
| 8 | - #address-cells: Set to <1> if the node includes partitions | 10 | - #address-cells: Set to <1> if the node includes partitions |
| @@ -13,6 +15,8 @@ Optional properties: | |||
| 13 | - marvell,nand-keep-config: Set to keep the NAND controller config as set | 15 | - marvell,nand-keep-config: Set to keep the NAND controller config as set |
| 14 | by the bootloader | 16 | by the bootloader |
| 15 | - num-cs: Number of chipselect lines to usw | 17 | - num-cs: Number of chipselect lines to usw |
| 18 | - nand-on-flash-bbt: boolean to enable on flash bbt option if | ||
| 19 | not present false | ||
| 16 | 20 | ||
| 17 | Example: | 21 | Example: |
| 18 | 22 | ||
diff --git a/Documentation/devicetree/bindings/net/allwinner,sun4i-emac.txt b/Documentation/devicetree/bindings/net/allwinner,sun4i-emac.txt index b90bfcd138ff..863d5b8155c7 100644 --- a/Documentation/devicetree/bindings/net/allwinner,sun4i-emac.txt +++ b/Documentation/devicetree/bindings/net/allwinner,sun4i-emac.txt | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | * Allwinner EMAC ethernet controller | 1 | * Allwinner EMAC ethernet controller |
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible: should be "allwinner,sun4i-emac". | 4 | - compatible: should be "allwinner,sun4i-a10-emac" (Deprecated: |
| 5 | "allwinner,sun4i-emac") | ||
| 5 | - reg: address and length of the register set for the device. | 6 | - reg: address and length of the register set for the device. |
| 6 | - interrupts: interrupt for the device | 7 | - interrupts: interrupt for the device |
| 7 | - phy: A phandle to a phy node defining the PHY address (as the reg | 8 | - phy: A phandle to a phy node defining the PHY address (as the reg |
| @@ -14,7 +15,7 @@ Optional properties: | |||
| 14 | Example: | 15 | Example: |
| 15 | 16 | ||
| 16 | emac: ethernet@01c0b000 { | 17 | emac: ethernet@01c0b000 { |
| 17 | compatible = "allwinner,sun4i-emac"; | 18 | compatible = "allwinner,sun4i-a10-emac"; |
| 18 | reg = <0x01c0b000 0x1000>; | 19 | reg = <0x01c0b000 0x1000>; |
| 19 | interrupts = <55>; | 20 | interrupts = <55>; |
| 20 | clocks = <&ahb_gates 17>; | 21 | clocks = <&ahb_gates 17>; |
diff --git a/Documentation/devicetree/bindings/net/allwinner,sun4i-mdio.txt b/Documentation/devicetree/bindings/net/allwinner,sun4i-mdio.txt index 00b9f9a3ec1d..4ec56413779d 100644 --- a/Documentation/devicetree/bindings/net/allwinner,sun4i-mdio.txt +++ b/Documentation/devicetree/bindings/net/allwinner,sun4i-mdio.txt | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | * Allwinner A10 MDIO Ethernet Controller interface | 1 | * Allwinner A10 MDIO Ethernet Controller interface |
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible: should be "allwinner,sun4i-mdio". | 4 | - compatible: should be "allwinner,sun4i-a10-mdio" |
| 5 | (Deprecated: "allwinner,sun4i-mdio"). | ||
| 5 | - reg: address and length of the register set for the device. | 6 | - reg: address and length of the register set for the device. |
| 6 | 7 | ||
| 7 | Optional properties: | 8 | Optional properties: |
| @@ -9,7 +10,7 @@ Optional properties: | |||
| 9 | 10 | ||
| 10 | Example at the SoC level: | 11 | Example at the SoC level: |
| 11 | mdio@01c0b080 { | 12 | mdio@01c0b080 { |
| 12 | compatible = "allwinner,sun4i-mdio"; | 13 | compatible = "allwinner,sun4i-a10-mdio"; |
| 13 | reg = <0x01c0b080 0x14>; | 14 | reg = <0x01c0b080 0x14>; |
| 14 | #address-cells = <1>; | 15 | #address-cells = <1>; |
| 15 | #size-cells = <0>; | 16 | #size-cells = <0>; |
diff --git a/Documentation/devicetree/bindings/net/allwinner,sun7i-a20-gmac.txt b/Documentation/devicetree/bindings/net/allwinner,sun7i-a20-gmac.txt new file mode 100644 index 000000000000..ea4d752389a2 --- /dev/null +++ b/Documentation/devicetree/bindings/net/allwinner,sun7i-a20-gmac.txt | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | * Allwinner GMAC ethernet controller | ||
| 2 | |||
| 3 | This device is a platform glue layer for stmmac. | ||
| 4 | Please see stmmac.txt for the other unchanged properties. | ||
| 5 | |||
| 6 | Required properties: | ||
| 7 | - compatible: Should be "allwinner,sun7i-a20-gmac" | ||
| 8 | - clocks: Should contain the GMAC main clock, and tx clock | ||
| 9 | The tx clock type should be "allwinner,sun7i-a20-gmac-clk" | ||
| 10 | - clock-names: Should contain the clock names "stmmaceth", | ||
| 11 | and "allwinner_gmac_tx" | ||
| 12 | |||
| 13 | Optional properties: | ||
| 14 | - phy-supply: phandle to a regulator if the PHY needs one | ||
| 15 | |||
| 16 | Examples: | ||
| 17 | |||
| 18 | gmac: ethernet@01c50000 { | ||
| 19 | compatible = "allwinner,sun7i-a20-gmac"; | ||
| 20 | reg = <0x01c50000 0x10000>, | ||
| 21 | <0x01c20164 0x4>; | ||
| 22 | interrupts = <0 85 1>; | ||
| 23 | interrupt-names = "macirq"; | ||
| 24 | clocks = <&ahb_gates 49>, <&gmac_tx>; | ||
| 25 | clock-names = "stmmaceth", "allwinner_gmac_tx"; | ||
| 26 | phy-mode = "mii"; | ||
| 27 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt b/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt new file mode 100644 index 000000000000..ee3723beb701 --- /dev/null +++ b/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | * Microchip MCP251X stand-alone CAN controller device tree bindings | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be one of the following: | ||
| 5 | - "microchip,mcp2510" for MCP2510. | ||
| 6 | - "microchip,mcp2515" for MCP2515. | ||
| 7 | - reg: SPI chip select. | ||
| 8 | - clocks: The clock feeding the CAN controller. | ||
| 9 | - interrupt-parent: The parent interrupt controller. | ||
| 10 | - interrupts: Should contain IRQ line for the CAN controller. | ||
| 11 | |||
| 12 | Optional properties: | ||
| 13 | - vdd-supply: Regulator that powers the CAN controller. | ||
| 14 | - xceiver-supply: Regulator that powers the CAN transceiver. | ||
| 15 | |||
| 16 | Example: | ||
| 17 | can0: can@1 { | ||
| 18 | compatible = "microchip,mcp2515"; | ||
| 19 | reg = <1>; | ||
| 20 | clocks = <&clk24m>; | ||
| 21 | interrupt-parent = <&gpio4>; | ||
| 22 | interrupts = <13 0x2>; | ||
| 23 | vdd-supply = <®5v0>; | ||
| 24 | xceiver-supply = <®5v0>; | ||
| 25 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/davinci_emac.txt b/Documentation/devicetree/bindings/net/davinci_emac.txt index bad381faf036..6e356d15154a 100644 --- a/Documentation/devicetree/bindings/net/davinci_emac.txt +++ b/Documentation/devicetree/bindings/net/davinci_emac.txt | |||
| @@ -10,10 +10,6 @@ Required properties: | |||
| 10 | - ti,davinci-ctrl-mod-reg-offset: offset to control module register | 10 | - ti,davinci-ctrl-mod-reg-offset: offset to control module register |
| 11 | - ti,davinci-ctrl-ram-offset: offset to control module ram | 11 | - ti,davinci-ctrl-ram-offset: offset to control module ram |
| 12 | - ti,davinci-ctrl-ram-size: size of control module ram | 12 | - ti,davinci-ctrl-ram-size: size of control module ram |
| 13 | - ti,davinci-rmii-en: use RMII | ||
| 14 | - ti,davinci-no-bd-ram: has the emac controller BD RAM | ||
| 15 | - phy-handle: Contains a phandle to an Ethernet PHY. | ||
| 16 | if not, davinci_emac driver defaults to 100/FULL | ||
| 17 | - interrupts: interrupt mapping for the davinci emac interrupts sources: | 13 | - interrupts: interrupt mapping for the davinci emac interrupts sources: |
| 18 | 4 sources: <Receive Threshold Interrupt | 14 | 4 sources: <Receive Threshold Interrupt |
| 19 | Receive Interrupt | 15 | Receive Interrupt |
| @@ -21,7 +17,11 @@ Required properties: | |||
| 21 | Miscellaneous Interrupt> | 17 | Miscellaneous Interrupt> |
| 22 | 18 | ||
| 23 | Optional properties: | 19 | Optional properties: |
| 20 | - phy-handle: Contains a phandle to an Ethernet PHY. | ||
| 21 | If absent, davinci_emac driver defaults to 100/FULL. | ||
| 24 | - local-mac-address : 6 bytes, mac address | 22 | - local-mac-address : 6 bytes, mac address |
| 23 | - ti,davinci-rmii-en: 1 byte, 1 means use RMII | ||
| 24 | - ti,davinci-no-bd-ram: boolean, does EMAC have BD RAM? | ||
| 25 | 25 | ||
| 26 | Example (enbw_cmc board): | 26 | Example (enbw_cmc board): |
| 27 | eth0: emac@1e20000 { | 27 | eth0: emac@1e20000 { |
diff --git a/Documentation/devicetree/bindings/net/macb.txt b/Documentation/devicetree/bindings/net/macb.txt index 4ff65047bb9a..70af2ec12b09 100644 --- a/Documentation/devicetree/bindings/net/macb.txt +++ b/Documentation/devicetree/bindings/net/macb.txt | |||
| @@ -10,6 +10,10 @@ Required properties: | |||
| 10 | - interrupts: Should contain macb interrupt | 10 | - interrupts: Should contain macb interrupt |
| 11 | - phy-mode: String, operation mode of the PHY interface. | 11 | - phy-mode: String, operation mode of the PHY interface. |
| 12 | Supported values are: "mii", "rmii", "gmii", "rgmii". | 12 | Supported values are: "mii", "rmii", "gmii", "rgmii". |
| 13 | - clock-names: Tuple listing input clock names. | ||
| 14 | Required elements: 'pclk', 'hclk' | ||
| 15 | Optional elements: 'tx_clk' | ||
| 16 | - clocks: Phandles to input clocks. | ||
| 13 | 17 | ||
| 14 | Optional properties: | 18 | Optional properties: |
| 15 | - local-mac-address: 6 bytes, mac address | 19 | - local-mac-address: 6 bytes, mac address |
| @@ -22,4 +26,6 @@ Examples: | |||
| 22 | interrupts = <21>; | 26 | interrupts = <21>; |
| 23 | phy-mode = "rmii"; | 27 | phy-mode = "rmii"; |
| 24 | local-mac-address = [3a 0e 03 04 05 06]; | 28 | local-mac-address = [3a 0e 03 04 05 06]; |
| 29 | clock-names = "pclk", "hclk", "tx_clk"; | ||
| 30 | clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>; | ||
| 25 | }; | 31 | }; |
diff --git a/Documentation/devicetree/bindings/net/marvell-orion-net.txt b/Documentation/devicetree/bindings/net/marvell-orion-net.txt index a73b79f227e1..c233b6114242 100644 --- a/Documentation/devicetree/bindings/net/marvell-orion-net.txt +++ b/Documentation/devicetree/bindings/net/marvell-orion-net.txt | |||
| @@ -32,7 +32,6 @@ Optional controller properties: | |||
| 32 | * Ethernet port node | 32 | * Ethernet port node |
| 33 | 33 | ||
| 34 | Required port properties: | 34 | Required port properties: |
| 35 | - device_type: shall be "network". | ||
| 36 | - compatible: shall be one of "marvell,orion-eth-port", | 35 | - compatible: shall be one of "marvell,orion-eth-port", |
| 37 | "marvell,kirkwood-eth-port". | 36 | "marvell,kirkwood-eth-port". |
| 38 | - reg: port number relative to ethernet controller, shall be 0, 1, or 2. | 37 | - reg: port number relative to ethernet controller, shall be 0, 1, or 2. |
| @@ -61,7 +60,6 @@ or | |||
| 61 | mdio-bus { | 60 | mdio-bus { |
| 62 | ... | 61 | ... |
| 63 | ethphy: ethernet-phy@8 { | 62 | ethphy: ethernet-phy@8 { |
| 64 | device_type = "ethernet-phy"; | ||
| 65 | ... | 63 | ... |
| 66 | }; | 64 | }; |
| 67 | }; | 65 | }; |
| @@ -75,7 +73,6 @@ eth: ethernet-controller@72000 { | |||
| 75 | marvell,tx-checksum-limit = <1600>; | 73 | marvell,tx-checksum-limit = <1600>; |
| 76 | 74 | ||
| 77 | ethernet@0 { | 75 | ethernet@0 { |
| 78 | device_type = "network"; | ||
| 79 | compatible = "marvell,orion-eth-port"; | 76 | compatible = "marvell,orion-eth-port"; |
| 80 | reg = <0>; | 77 | reg = <0>; |
| 81 | interrupts = <29>; | 78 | interrupts = <29>; |
diff --git a/Documentation/devicetree/bindings/net/micrel-ks8851.txt b/Documentation/devicetree/bindings/net/micrel-ks8851.txt index 11ace3c3d805..4fc392763611 100644 --- a/Documentation/devicetree/bindings/net/micrel-ks8851.txt +++ b/Documentation/devicetree/bindings/net/micrel-ks8851.txt | |||
| @@ -7,3 +7,4 @@ Required properties: | |||
| 7 | 7 | ||
| 8 | Optional properties: | 8 | Optional properties: |
| 9 | - local-mac-address : Ethernet mac address to use | 9 | - local-mac-address : Ethernet mac address to use |
| 10 | - vdd-supply: supply for Ethernet mac | ||
diff --git a/Documentation/devicetree/bindings/net/opencores-ethoc.txt b/Documentation/devicetree/bindings/net/opencores-ethoc.txt new file mode 100644 index 000000000000..2dc127c30d9b --- /dev/null +++ b/Documentation/devicetree/bindings/net/opencores-ethoc.txt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | * OpenCores MAC 10/100 Mbps | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "opencores,ethoc". | ||
| 5 | - reg: two memory regions (address and length), | ||
| 6 | first region is for the device registers and descriptor rings, | ||
| 7 | second is for the device packet memory. | ||
| 8 | - interrupts: interrupt for the device. | ||
| 9 | |||
| 10 | Optional properties: | ||
| 11 | - clocks: phandle to refer to the clk used as per | ||
| 12 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 13 | |||
| 14 | Examples: | ||
| 15 | |||
| 16 | enet0: ethoc@fd030000 { | ||
| 17 | compatible = "opencores,ethoc"; | ||
| 18 | reg = <0xfd030000 0x4000 0xfd800000 0x4000>; | ||
| 19 | interrupts = <1>; | ||
| 20 | local-mac-address = [00 50 c2 13 6f 00]; | ||
| 21 | clocks = <&osc>; | ||
| 22 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/phy.txt b/Documentation/devicetree/bindings/net/phy.txt index 7cd18fbfcf71..58307d0931c8 100644 --- a/Documentation/devicetree/bindings/net/phy.txt +++ b/Documentation/devicetree/bindings/net/phy.txt | |||
| @@ -2,7 +2,6 @@ PHY nodes | |||
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | 4 | ||
| 5 | - device_type : Should be "ethernet-phy" | ||
| 6 | - interrupts : <a b> where a is the interrupt number and b is a | 5 | - interrupts : <a b> where a is the interrupt number and b is a |
| 7 | field that represents an encoding of the sense and level | 6 | field that represents an encoding of the sense and level |
| 8 | information for the interrupt. This should be encoded based on | 7 | information for the interrupt. This should be encoded based on |
| @@ -11,8 +10,6 @@ Required properties: | |||
| 11 | - interrupt-parent : the phandle for the interrupt controller that | 10 | - interrupt-parent : the phandle for the interrupt controller that |
| 12 | services interrupts for this device. | 11 | services interrupts for this device. |
| 13 | - reg : The ID number for the phy, usually a small integer | 12 | - reg : The ID number for the phy, usually a small integer |
| 14 | - linux,phandle : phandle for this node; likely referenced by an | ||
| 15 | ethernet controller node. | ||
| 16 | 13 | ||
| 17 | Optional Properties: | 14 | Optional Properties: |
| 18 | 15 | ||
| @@ -22,14 +19,13 @@ Optional Properties: | |||
| 22 | specifications. If neither of these are specified, the default is to | 19 | specifications. If neither of these are specified, the default is to |
| 23 | assume clause 22. The compatible list may also contain other | 20 | assume clause 22. The compatible list may also contain other |
| 24 | elements. | 21 | elements. |
| 22 | - max-speed: Maximum PHY supported speed (10, 100, 1000...) | ||
| 25 | 23 | ||
| 26 | Example: | 24 | Example: |
| 27 | 25 | ||
| 28 | ethernet-phy@0 { | 26 | ethernet-phy@0 { |
| 29 | compatible = "ethernet-phy-ieee802.3-c22"; | 27 | compatible = "ethernet-phy-ieee802.3-c22"; |
| 30 | linux,phandle = <2452000>; | ||
| 31 | interrupt-parent = <40000>; | 28 | interrupt-parent = <40000>; |
| 32 | interrupts = <35 1>; | 29 | interrupts = <35 1>; |
| 33 | reg = <0>; | 30 | reg = <0>; |
| 34 | device_type = "ethernet-phy"; | ||
| 35 | }; | 31 | }; |
diff --git a/Documentation/devicetree/bindings/net/sti-dwmac.txt b/Documentation/devicetree/bindings/net/sti-dwmac.txt new file mode 100644 index 000000000000..3dd3d0bf112f --- /dev/null +++ b/Documentation/devicetree/bindings/net/sti-dwmac.txt | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | STMicroelectronics SoC DWMAC glue layer controller | ||
| 2 | |||
| 3 | The device node has following properties. | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | - compatible : Can be "st,stih415-dwmac", "st,stih416-dwmac" or | ||
| 7 | "st,stid127-dwmac". | ||
| 8 | - reg : Offset of the glue configuration register map in system | ||
| 9 | configuration regmap pointed by st,syscon property and size. | ||
| 10 | |||
| 11 | - reg-names : Should be "sti-ethconf". | ||
| 12 | |||
| 13 | - st,syscon : Should be phandle to system configuration node which | ||
| 14 | encompases this glue registers. | ||
| 15 | |||
| 16 | - st,tx-retime-src: On STi Parts for Giga bit speeds, 125Mhz clocks can be | ||
| 17 | wired up in from different sources. One via TXCLK pin and other via CLK_125 | ||
| 18 | pin. This wiring is totally board dependent. However the retiming glue | ||
| 19 | logic should be configured accordingly. Possible values for this property | ||
| 20 | |||
| 21 | "txclk" - if 125Mhz clock is wired up via txclk line. | ||
| 22 | "clk_125" - if 125Mhz clock is wired up via clk_125 line. | ||
| 23 | |||
| 24 | This property is only valid for Giga bit setup( GMII, RGMII), and it is | ||
| 25 | un-used for non-giga bit (MII and RMII) setups. Also note that internal | ||
| 26 | clockgen can not generate stable 125Mhz clock. | ||
| 27 | |||
| 28 | - st,ext-phyclk: This boolean property indicates who is generating the clock | ||
| 29 | for tx and rx. This property is only valid for RMII case where the clock can | ||
| 30 | be generated from the MAC or PHY. | ||
| 31 | |||
| 32 | - clock-names: should be "sti-ethclk". | ||
| 33 | - clocks: Should point to ethernet clockgen which can generate phyclk. | ||
| 34 | |||
| 35 | |||
| 36 | Example: | ||
| 37 | |||
| 38 | ethernet0: dwmac@fe810000 { | ||
| 39 | device_type = "network"; | ||
| 40 | compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710"; | ||
| 41 | reg = <0xfe810000 0x8000>, <0x8bc 0x4>; | ||
| 42 | reg-names = "stmmaceth", "sti-ethconf"; | ||
| 43 | interrupts = <0 133 0>, <0 134 0>, <0 135 0>; | ||
| 44 | interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; | ||
| 45 | phy-mode = "mii"; | ||
| 46 | |||
| 47 | st,syscon = <&syscfg_rear>; | ||
| 48 | |||
| 49 | snps,pbl = <32>; | ||
| 50 | snps,mixed-burst; | ||
| 51 | |||
| 52 | resets = <&softreset STIH416_ETH0_SOFTRESET>; | ||
| 53 | reset-names = "stmmaceth"; | ||
| 54 | pinctrl-0 = <&pinctrl_mii0>; | ||
| 55 | pinctrl-names = "default"; | ||
| 56 | clocks = <&CLK_S_GMAC0_PHY>; | ||
| 57 | clock-names = "stmmaceth"; | ||
| 58 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt index eba0e5e59ebe..9d92d42140f2 100644 --- a/Documentation/devicetree/bindings/net/stmmac.txt +++ b/Documentation/devicetree/bindings/net/stmmac.txt | |||
| @@ -12,7 +12,6 @@ Required properties: | |||
| 12 | property | 12 | property |
| 13 | - phy-mode: String, operation mode of the PHY interface. | 13 | - phy-mode: String, operation mode of the PHY interface. |
| 14 | Supported values are: "mii", "rmii", "gmii", "rgmii". | 14 | Supported values are: "mii", "rmii", "gmii", "rgmii". |
| 15 | - snps,phy-addr phy address to connect to. | ||
| 16 | - snps,reset-gpio gpio number for phy reset. | 15 | - snps,reset-gpio gpio number for phy reset. |
| 17 | - snps,reset-active-low boolean flag to indicate if phy reset is active low. | 16 | - snps,reset-active-low boolean flag to indicate if phy reset is active low. |
| 18 | - snps,reset-delays-us is triplet of delays | 17 | - snps,reset-delays-us is triplet of delays |
| @@ -30,6 +29,11 @@ Required properties: | |||
| 30 | 29 | ||
| 31 | Optional properties: | 30 | Optional properties: |
| 32 | - mac-address: 6 bytes, mac address | 31 | - mac-address: 6 bytes, mac address |
| 32 | - resets: Should contain a phandle to the STMMAC reset signal, if any | ||
| 33 | - reset-names: Should contain the reset signal name "stmmaceth", if a | ||
| 34 | reset phandle is given | ||
| 35 | - max-frame-size: Maximum Transfer Unit (IEEE defined MTU), rather | ||
| 36 | than the maximum frame size. | ||
| 33 | 37 | ||
| 34 | Examples: | 38 | Examples: |
| 35 | 39 | ||
| @@ -40,5 +44,6 @@ Examples: | |||
| 40 | interrupts = <24 23>; | 44 | interrupts = <24 23>; |
| 41 | interrupt-names = "macirq", "eth_wake_irq"; | 45 | interrupt-names = "macirq", "eth_wake_irq"; |
| 42 | mac-address = [000000000000]; /* Filled in by U-Boot */ | 46 | mac-address = [000000000000]; /* Filled in by U-Boot */ |
| 47 | max-frame-size = <3800>; | ||
| 43 | phy-mode = "gmii"; | 48 | phy-mode = "gmii"; |
| 44 | }; | 49 | }; |
diff --git a/Documentation/devicetree/bindings/nvec/nvidia,nvec.txt b/Documentation/devicetree/bindings/nvec/nvidia,nvec.txt index 5aeee53ff9f4..5ae601e7f51f 100644 --- a/Documentation/devicetree/bindings/nvec/nvidia,nvec.txt +++ b/Documentation/devicetree/bindings/nvec/nvidia,nvec.txt | |||
| @@ -7,3 +7,15 @@ Required properties: | |||
| 7 | - clock-frequency : the frequency of the i2c bus | 7 | - clock-frequency : the frequency of the i2c bus |
| 8 | - gpios : the gpio used for ec request | 8 | - gpios : the gpio used for ec request |
| 9 | - slave-addr: the i2c address of the slave controller | 9 | - slave-addr: the i2c address of the slave controller |
| 10 | - clocks : Must contain an entry for each entry in clock-names. | ||
| 11 | See ../clocks/clock-bindings.txt for details. | ||
| 12 | - clock-names : Must include the following entries: | ||
| 13 | Tegra20/Tegra30: | ||
| 14 | - div-clk | ||
| 15 | - fast-clk | ||
| 16 | Tegra114: | ||
| 17 | - div-clk | ||
| 18 | - resets : Must contain an entry for each entry in reset-names. | ||
| 19 | See ../reset/reset.txt for details. | ||
| 20 | - reset-names : Must include the following entries: | ||
| 21 | - i2c | ||
diff --git a/Documentation/devicetree/bindings/panel/auo,b101aw03.txt b/Documentation/devicetree/bindings/panel/auo,b101aw03.txt new file mode 100644 index 000000000000..72e088a4fb3a --- /dev/null +++ b/Documentation/devicetree/bindings/panel/auo,b101aw03.txt | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | AU Optronics Corporation 10.1" WSVGA TFT LCD panel | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "auo,b101aw03" | ||
| 5 | |||
| 6 | This binding is compatible with the simple-panel binding, which is specified | ||
| 7 | in simple-panel.txt in this directory. | ||
diff --git a/Documentation/devicetree/bindings/panel/chunghwa,claa101wa01a.txt b/Documentation/devicetree/bindings/panel/chunghwa,claa101wa01a.txt new file mode 100644 index 000000000000..f24614e4d5ec --- /dev/null +++ b/Documentation/devicetree/bindings/panel/chunghwa,claa101wa01a.txt | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "chunghwa,claa101wa01a" | ||
| 5 | |||
| 6 | This binding is compatible with the simple-panel binding, which is specified | ||
| 7 | in simple-panel.txt in this directory. | ||
diff --git a/Documentation/devicetree/bindings/panel/chunghwa,claa101wb03.txt b/Documentation/devicetree/bindings/panel/chunghwa,claa101wb03.txt new file mode 100644 index 000000000000..0ab2c05a4c22 --- /dev/null +++ b/Documentation/devicetree/bindings/panel/chunghwa,claa101wb03.txt | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | Chunghwa Picture Tubes Ltd. 10.1" WXGA TFT LCD panel | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "chunghwa,claa101wb03" | ||
| 5 | |||
| 6 | This binding is compatible with the simple-panel binding, which is specified | ||
| 7 | in simple-panel.txt in this directory. | ||
diff --git a/Documentation/devicetree/bindings/panel/panasonic,vvx10f004b00.txt b/Documentation/devicetree/bindings/panel/panasonic,vvx10f004b00.txt new file mode 100644 index 000000000000..d328b0341bf4 --- /dev/null +++ b/Documentation/devicetree/bindings/panel/panasonic,vvx10f004b00.txt | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | Panasonic Corporation 10.1" WUXGA TFT LCD panel | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "panasonic,vvx10f004b00" | ||
| 5 | |||
| 6 | This binding is compatible with the simple-panel binding, which is specified | ||
| 7 | in simple-panel.txt in this directory. | ||
diff --git a/Documentation/devicetree/bindings/panel/samsung,ltn101nt05.txt b/Documentation/devicetree/bindings/panel/samsung,ltn101nt05.txt new file mode 100644 index 000000000000..ef522c6bb85f --- /dev/null +++ b/Documentation/devicetree/bindings/panel/samsung,ltn101nt05.txt | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | Samsung Electronics 10.1" WSVGA TFT LCD panel | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "samsung,ltn101nt05" | ||
| 5 | |||
| 6 | This binding is compatible with the simple-panel binding, which is specified | ||
| 7 | in simple-panel.txt in this directory. | ||
diff --git a/Documentation/devicetree/bindings/panel/simple-panel.txt b/Documentation/devicetree/bindings/panel/simple-panel.txt new file mode 100644 index 000000000000..1341bbf4aa3d --- /dev/null +++ b/Documentation/devicetree/bindings/panel/simple-panel.txt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | Simple display panel | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - power-supply: regulator to provide the supply voltage | ||
| 5 | |||
| 6 | Optional properties: | ||
| 7 | - ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing | ||
| 8 | - enable-gpios: GPIO pin to enable or disable the panel | ||
| 9 | - backlight: phandle of the backlight device attached to the panel | ||
| 10 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | panel: panel { | ||
| 14 | compatible = "cptt,claa101wb01"; | ||
| 15 | ddc-i2c-bus = <&panelddc>; | ||
| 16 | |||
| 17 | power-supply = <&vdd_pnl_reg>; | ||
| 18 | enable-gpios = <&gpio 90 0>; | ||
| 19 | |||
| 20 | backlight = <&backlight>; | ||
| 21 | }; | ||
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt index d5d26d443693..d6fae13ff062 100644 --- a/Documentation/devicetree/bindings/pci/designware-pcie.txt +++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt | |||
| @@ -19,6 +19,8 @@ Required 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 | - num-lanes: number of lanes to use |
| 22 | |||
| 23 | Optional properties: | ||
| 22 | - reset-gpio: gpio pin number of power good signal | 24 | - reset-gpio: gpio pin number of power good signal |
| 23 | 25 | ||
| 24 | Optional properties for fsl,imx6q-pcie | 26 | Optional properties for fsl,imx6q-pcie |
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt index 6b7510775c50..24cee06915c9 100644 --- a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt +++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt | |||
| @@ -42,14 +42,19 @@ Required properties: | |||
| 42 | - 0xc2000000: prefetchable memory region | 42 | - 0xc2000000: prefetchable memory region |
| 43 | Please refer to the standard PCI bus binding document for a more detailed | 43 | Please refer to the standard PCI bus binding document for a more detailed |
| 44 | explanation. | 44 | explanation. |
| 45 | - clocks: List of clock inputs of the controller. Must contain an entry for | 45 | - clocks: Must contain an entry for each entry in clock-names. |
| 46 | each entry in the clock-names property. | 46 | See ../clocks/clock-bindings.txt for details. |
| 47 | - clock-names: Must include the following entries: | 47 | - clock-names: Must include the following entries: |
| 48 | "pex": The Tegra clock of that name | 48 | - pex |
| 49 | "afi": The Tegra clock of that name | 49 | - afi |
| 50 | "pcie_xclk": The Tegra clock of that name | 50 | - pll_e |
| 51 | "pll_e": The Tegra clock of that name | 51 | - cml (not required for Tegra20) |
| 52 | "cml": The Tegra clock of that name (not required for Tegra20) | 52 | - resets: Must contain an entry for each entry in reset-names. |
| 53 | See ../reset/reset.txt for details. | ||
| 54 | - reset-names: Must include the following entries: | ||
| 55 | - pex | ||
| 56 | - afi | ||
| 57 | - pcie_x | ||
| 53 | 58 | ||
| 54 | Root ports are defined as subnodes of the PCIe controller node. | 59 | Root ports are defined as subnodes of the PCIe controller node. |
| 55 | 60 | ||
| @@ -91,9 +96,10 @@ SoC DTSI: | |||
| 91 | 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ | 96 | 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */ |
| 92 | 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ | 97 | 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */ |
| 93 | 98 | ||
| 94 | clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>, | 99 | clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 118>; |
| 95 | <&tegra_car 118>; | 100 | clock-names = "pex", "afi", "pll_e"; |
| 96 | clock-names = "pex", "afi", "pcie_xclk", "pll_e"; | 101 | resets = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>; |
| 102 | reset-names = "pex", "afi", "pcie_x"; | ||
| 97 | status = "disabled"; | 103 | status = "disabled"; |
| 98 | 104 | ||
| 99 | pci@1,0 { | 105 | pci@1,0 { |
diff --git a/Documentation/devicetree/bindings/phy/bcm-phy.txt b/Documentation/devicetree/bindings/phy/bcm-phy.txt new file mode 100644 index 000000000000..3dc8b3d2ffbb --- /dev/null +++ b/Documentation/devicetree/bindings/phy/bcm-phy.txt | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | BROADCOM KONA USB2 PHY | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: brcm,kona-usb2-phy | ||
| 5 | - reg: offset and length of the PHY registers | ||
| 6 | - #phy-cells: must be 0 | ||
| 7 | Refer to phy/phy-bindings.txt for the generic PHY binding properties | ||
| 8 | |||
| 9 | Example: | ||
| 10 | |||
| 11 | usbphy: usb-phy@3f130000 { | ||
| 12 | compatible = "brcm,kona-usb2-phy"; | ||
| 13 | reg = <0x3f130000 0x28>; | ||
| 14 | #phy-cells = <0>; | ||
| 15 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt new file mode 100644 index 000000000000..c119debe6bab --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt | |||
| @@ -0,0 +1,461 @@ | |||
| 1 | Broadcom BCM281xx Pin Controller | ||
| 2 | |||
| 3 | This is a pin controller for the Broadcom BCM281xx SoC family, which includes | ||
| 4 | BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs. | ||
| 5 | |||
| 6 | === Pin Controller Node === | ||
| 7 | |||
| 8 | Required Properties: | ||
| 9 | |||
| 10 | - compatible: Must be "brcm,bcm11351-pinctrl" | ||
| 11 | - reg: Base address of the PAD Controller register block and the size | ||
| 12 | of the block. | ||
| 13 | |||
| 14 | For example, the following is the bare minimum node: | ||
| 15 | |||
| 16 | pinctrl@35004800 { | ||
| 17 | compatible = "brcm,bcm11351-pinctrl"; | ||
| 18 | reg = <0x35004800 0x430>; | ||
| 19 | }; | ||
| 20 | |||
| 21 | As a pin controller device, in addition to the required properties, this node | ||
| 22 | should also contain the pin configuration nodes that client devices reference, | ||
| 23 | if any. | ||
| 24 | |||
| 25 | === Pin Configuration Node === | ||
| 26 | |||
| 27 | Each pin configuration node is a sub-node of the pin controller node and is a | ||
| 28 | container of an arbitrary number of subnodes, called pin group nodes in this | ||
| 29 | document. | ||
| 30 | |||
| 31 | Please refer to the pinctrl-bindings.txt in this directory for details of the | ||
| 32 | common pinctrl bindings used by client devices, including the definition of a | ||
| 33 | "pin configuration node". | ||
| 34 | |||
| 35 | === Pin Group Node === | ||
| 36 | |||
| 37 | A pin group node specifies the desired pin mux and/or pin configuration for an | ||
| 38 | arbitrary number of pins. The name of the pin group node is optional and not | ||
| 39 | used. | ||
| 40 | |||
| 41 | A pin group node only affects the properties specified in the node, and has no | ||
| 42 | effect on any properties that are omitted. | ||
| 43 | |||
| 44 | The pin group node accepts a subset of the generic pin config properties. For | ||
| 45 | details generic pin config properties, please refer to pinctrl-bindings.txt | ||
| 46 | and <include/linux/pinctrl/pinconfig-generic.h>. | ||
| 47 | |||
| 48 | Each pin controlled by this pin controller belong to one of three types: | ||
| 49 | Standard, I2C, and HDMI. Each type accepts a different set of pin config | ||
| 50 | properties. A list of pins and their types is provided below. | ||
| 51 | |||
| 52 | Required Properties (applicable to all pins): | ||
| 53 | |||
| 54 | - pins: Multiple strings. Specifies the name(s) of one or more pins to | ||
| 55 | be configured by this node. | ||
| 56 | |||
| 57 | Optional Properties (for standard pins): | ||
| 58 | |||
| 59 | - function: String. Specifies the pin mux selection. Values | ||
| 60 | must be one of: "alt1", "alt2", "alt3", "alt4" | ||
| 61 | - input-schmitt-enable: No arguments. Enable schmitt-trigger mode. | ||
| 62 | - input-schmitt-disable: No arguments. Disable schmitt-trigger mode. | ||
| 63 | - bias-pull-up: No arguments. Pull up on pin. | ||
| 64 | - bias-pull-down: No arguments. Pull down on pin. | ||
| 65 | - bias-disable: No arguments. Disable pin bias. | ||
| 66 | - slew-rate: Integer. Meaning depends on configured pin mux: | ||
| 67 | *_SCL or *_SDA: | ||
| 68 | 0: Standard(100kbps)& Fast(400kbps) mode | ||
| 69 | 1: Highspeed (3.4Mbps) mode | ||
| 70 | IC_DM or IC_DP: | ||
| 71 | 0: normal slew rate | ||
| 72 | 1: fast slew rate | ||
| 73 | Otherwise: | ||
| 74 | 0: fast slew rate | ||
| 75 | 1: normal slew rate | ||
| 76 | - input-enable: No arguements. Enable input (does not affect | ||
| 77 | output.) | ||
| 78 | - input-disable: No arguements. Disable input (does not affect | ||
| 79 | output.) | ||
| 80 | - drive-strength: Integer. Drive strength in mA. Valid values are | ||
| 81 | 2, 4, 6, 8, 10, 12, 14, 16 mA. | ||
| 82 | |||
| 83 | Optional Properties (for I2C pins): | ||
| 84 | |||
| 85 | - function: String. Specifies the pin mux selection. Values | ||
| 86 | must be one of: "alt1", "alt2", "alt3", "alt4" | ||
| 87 | - bias-pull-up: Integer. Pull up strength in Ohm. There are 3 | ||
| 88 | pull-up resisitors (1.2k, 1.8k, 2.7k) available | ||
| 89 | in parallel for I2C pins, so the valid values | ||
| 90 | are: 568, 720, 831, 1080, 1200, 1800, 2700 Ohm. | ||
| 91 | - bias-disable: No arguments. Disable pin bias. | ||
| 92 | - slew-rate: Integer. Meaning depends on configured pin mux: | ||
| 93 | *_SCL or *_SDA: | ||
| 94 | 0: Standard(100kbps)& Fast(400kbps) mode | ||
| 95 | 1: Highspeed (3.4Mbps) mode | ||
| 96 | IC_DM or IC_DP: | ||
| 97 | 0: normal slew rate | ||
| 98 | 1: fast slew rate | ||
| 99 | Otherwise: | ||
| 100 | 0: fast slew rate | ||
| 101 | 1: normal slew rate | ||
| 102 | - input-enable: No arguements. Enable input (does not affect | ||
| 103 | output.) | ||
| 104 | - input-disable: No arguements. Disable input (does not affect | ||
| 105 | output.) | ||
| 106 | |||
| 107 | Optional Properties (for HDMI pins): | ||
| 108 | |||
| 109 | - function: String. Specifies the pin mux selection. Values | ||
| 110 | must be one of: "alt1", "alt2", "alt3", "alt4" | ||
| 111 | - slew-rate: Integer. Controls slew rate. | ||
| 112 | 0: Standard(100kbps)& Fast(400kbps) mode | ||
| 113 | 1: Highspeed (3.4Mbps) mode | ||
| 114 | - input-enable: No arguements. Enable input (does not affect | ||
| 115 | output.) | ||
| 116 | - input-disable: No arguements. Disable input (does not affect | ||
| 117 | output.) | ||
| 118 | |||
| 119 | Example: | ||
| 120 | // pin controller node | ||
| 121 | pinctrl@35004800 { | ||
| 122 | compatible = "brcmbcm11351-pinctrl"; | ||
| 123 | reg = <0x35004800 0x430>; | ||
| 124 | |||
| 125 | // pin configuration node | ||
| 126 | dev_a_default: dev_a_active { | ||
| 127 | //group node defining 1 standard pin | ||
| 128 | grp_1 { | ||
| 129 | pins = "std_pin1"; | ||
| 130 | function = "alt1"; | ||
| 131 | input-schmitt-enable; | ||
| 132 | bias-disable; | ||
| 133 | slew-rate = <1>; | ||
| 134 | drive-strength = <4>; | ||
| 135 | }; | ||
| 136 | |||
| 137 | // group node defining 2 I2C pins | ||
| 138 | grp_2 { | ||
| 139 | pins = "i2c_pin1", "i2c_pin2"; | ||
| 140 | function = "alt2"; | ||
| 141 | bias-pull-up = <720>; | ||
| 142 | input-enable; | ||
| 143 | }; | ||
| 144 | |||
| 145 | // group node defining 2 HDMI pins | ||
| 146 | grp_3 { | ||
| 147 | pins = "hdmi_pin1", "hdmi_pin2"; | ||
| 148 | function = "alt3"; | ||
| 149 | slew-rate = <1>; | ||
| 150 | }; | ||
| 151 | |||
| 152 | // other pin group nodes | ||
| 153 | ... | ||
| 154 | }; | ||
| 155 | |||
| 156 | // other pin configuration nodes | ||
| 157 | ... | ||
| 158 | }; | ||
| 159 | |||
| 160 | In the example above, "dev_a_active" is a pin configuration node with a number | ||
| 161 | of sub-nodes. In the pin group node "grp_1", one pin, "std_pin1", is defined in | ||
| 162 | the "pins" property. Thus, the remaining properties in the "grp_1" node applies | ||
| 163 | only to this pin, including the following settings: | ||
| 164 | - setting pinmux to "alt1" | ||
| 165 | - enabling schmitt-trigger (hystersis) mode | ||
| 166 | - disabling pin bias | ||
| 167 | - setting the slew-rate to 1 | ||
| 168 | - setting the drive strength to 4 mA | ||
| 169 | Note that neither "input-enable" nor "input-disable" was specified - the pinctrl | ||
| 170 | subsystem will therefore leave this property unchanged from whatever state it | ||
| 171 | was in before applying these changes. | ||
| 172 | |||
| 173 | The "pins" property in the pin group node "grp_2" specifies two pins - | ||
| 174 | "i2c_pin1" and "i2c_pin2"; the remaining properties in this pin group node, | ||
| 175 | therefore, applies to both of these pins. The properties include: | ||
| 176 | - setting pinmux to "alt2" | ||
| 177 | - setting pull-up resistance to 720 Ohm (ie. enabling 1.2k and 1.8k resistors | ||
| 178 | in parallel) | ||
| 179 | - enabling both pins' input | ||
| 180 | "slew-rate" is not specified in this pin group node, so the slew-rate for these | ||
| 181 | pins are left as-is. | ||
| 182 | |||
| 183 | Finally, "grp_3" defines two HDMI pins. The following properties are applied to | ||
| 184 | both pins: | ||
| 185 | - setting pinmux to "alt3" | ||
| 186 | - setting slew-rate to 1; for HDMI pins, this corresponds to the 3.4 Mbps | ||
| 187 | Highspeed mode | ||
| 188 | The input is neither enabled or disabled, and is left untouched. | ||
| 189 | |||
| 190 | === Pin Names and Type === | ||
| 191 | |||
| 192 | The following are valid pin names and their pin types: | ||
| 193 | |||
| 194 | "adcsync", Standard | ||
| 195 | "bat_rm", Standard | ||
| 196 | "bsc1_scl", I2C | ||
| 197 | "bsc1_sda", I2C | ||
| 198 | "bsc2_scl", I2C | ||
| 199 | "bsc2_sda", I2C | ||
| 200 | "classgpwr", Standard | ||
| 201 | "clk_cx8", Standard | ||
| 202 | "clkout_0", Standard | ||
| 203 | "clkout_1", Standard | ||
| 204 | "clkout_2", Standard | ||
| 205 | "clkout_3", Standard | ||
| 206 | "clkreq_in_0", Standard | ||
| 207 | "clkreq_in_1", Standard | ||
| 208 | "cws_sys_req1", Standard | ||
| 209 | "cws_sys_req2", Standard | ||
| 210 | "cws_sys_req3", Standard | ||
| 211 | "digmic1_clk", Standard | ||
| 212 | "digmic1_dq", Standard | ||
| 213 | "digmic2_clk", Standard | ||
| 214 | "digmic2_dq", Standard | ||
| 215 | "gpen13", Standard | ||
| 216 | "gpen14", Standard | ||
| 217 | "gpen15", Standard | ||
| 218 | "gpio00", Standard | ||
| 219 | "gpio01", Standard | ||
| 220 | "gpio02", Standard | ||
| 221 | "gpio03", Standard | ||
| 222 | "gpio04", Standard | ||
| 223 | "gpio05", Standard | ||
| 224 | "gpio06", Standard | ||
| 225 | "gpio07", Standard | ||
| 226 | "gpio08", Standard | ||
| 227 | "gpio09", Standard | ||
| 228 | "gpio10", Standard | ||
| 229 | "gpio11", Standard | ||
| 230 | "gpio12", Standard | ||
| 231 | "gpio13", Standard | ||
| 232 | "gpio14", Standard | ||
| 233 | "gps_pablank", Standard | ||
| 234 | "gps_tmark", Standard | ||
| 235 | "hdmi_scl", HDMI | ||
| 236 | "hdmi_sda", HDMI | ||
| 237 | "ic_dm", Standard | ||
| 238 | "ic_dp", Standard | ||
| 239 | "kp_col_ip_0", Standard | ||
| 240 | "kp_col_ip_1", Standard | ||
| 241 | "kp_col_ip_2", Standard | ||
| 242 | "kp_col_ip_3", Standard | ||
| 243 | "kp_row_op_0", Standard | ||
| 244 | "kp_row_op_1", Standard | ||
| 245 | "kp_row_op_2", Standard | ||
| 246 | "kp_row_op_3", Standard | ||
| 247 | "lcd_b_0", Standard | ||
| 248 | "lcd_b_1", Standard | ||
| 249 | "lcd_b_2", Standard | ||
| 250 | "lcd_b_3", Standard | ||
| 251 | "lcd_b_4", Standard | ||
| 252 | "lcd_b_5", Standard | ||
| 253 | "lcd_b_6", Standard | ||
| 254 | "lcd_b_7", Standard | ||
| 255 | "lcd_g_0", Standard | ||
| 256 | "lcd_g_1", Standard | ||
| 257 | "lcd_g_2", Standard | ||
| 258 | "lcd_g_3", Standard | ||
| 259 | "lcd_g_4", Standard | ||
| 260 | "lcd_g_5", Standard | ||
| 261 | "lcd_g_6", Standard | ||
| 262 | "lcd_g_7", Standard | ||
| 263 | "lcd_hsync", Standard | ||
| 264 | "lcd_oe", Standard | ||
| 265 | "lcd_pclk", Standard | ||
| 266 | "lcd_r_0", Standard | ||
| 267 | "lcd_r_1", Standard | ||
| 268 | "lcd_r_2", Standard | ||
| 269 | "lcd_r_3", Standard | ||
| 270 | "lcd_r_4", Standard | ||
| 271 | "lcd_r_5", Standard | ||
| 272 | "lcd_r_6", Standard | ||
| 273 | "lcd_r_7", Standard | ||
| 274 | "lcd_vsync", Standard | ||
| 275 | "mdmgpio0", Standard | ||
| 276 | "mdmgpio1", Standard | ||
| 277 | "mdmgpio2", Standard | ||
| 278 | "mdmgpio3", Standard | ||
| 279 | "mdmgpio4", Standard | ||
| 280 | "mdmgpio5", Standard | ||
| 281 | "mdmgpio6", Standard | ||
| 282 | "mdmgpio7", Standard | ||
| 283 | "mdmgpio8", Standard | ||
| 284 | "mphi_data_0", Standard | ||
| 285 | "mphi_data_1", Standard | ||
| 286 | "mphi_data_2", Standard | ||
| 287 | "mphi_data_3", Standard | ||
| 288 | "mphi_data_4", Standard | ||
| 289 | "mphi_data_5", Standard | ||
| 290 | "mphi_data_6", Standard | ||
| 291 | "mphi_data_7", Standard | ||
| 292 | "mphi_data_8", Standard | ||
| 293 | "mphi_data_9", Standard | ||
| 294 | "mphi_data_10", Standard | ||
| 295 | "mphi_data_11", Standard | ||
| 296 | "mphi_data_12", Standard | ||
| 297 | "mphi_data_13", Standard | ||
| 298 | "mphi_data_14", Standard | ||
| 299 | "mphi_data_15", Standard | ||
| 300 | "mphi_ha0", Standard | ||
| 301 | "mphi_hat0", Standard | ||
| 302 | "mphi_hat1", Standard | ||
| 303 | "mphi_hce0_n", Standard | ||
| 304 | "mphi_hce1_n", Standard | ||
| 305 | "mphi_hrd_n", Standard | ||
| 306 | "mphi_hwr_n", Standard | ||
| 307 | "mphi_run0", Standard | ||
| 308 | "mphi_run1", Standard | ||
| 309 | "mtx_scan_clk", Standard | ||
| 310 | "mtx_scan_data", Standard | ||
| 311 | "nand_ad_0", Standard | ||
| 312 | "nand_ad_1", Standard | ||
| 313 | "nand_ad_2", Standard | ||
| 314 | "nand_ad_3", Standard | ||
| 315 | "nand_ad_4", Standard | ||
| 316 | "nand_ad_5", Standard | ||
| 317 | "nand_ad_6", Standard | ||
| 318 | "nand_ad_7", Standard | ||
| 319 | "nand_ale", Standard | ||
| 320 | "nand_cen_0", Standard | ||
| 321 | "nand_cen_1", Standard | ||
| 322 | "nand_cle", Standard | ||
| 323 | "nand_oen", Standard | ||
| 324 | "nand_rdy_0", Standard | ||
| 325 | "nand_rdy_1", Standard | ||
| 326 | "nand_wen", Standard | ||
| 327 | "nand_wp", Standard | ||
| 328 | "pc1", Standard | ||
| 329 | "pc2", Standard | ||
| 330 | "pmu_int", Standard | ||
| 331 | "pmu_scl", I2C | ||
| 332 | "pmu_sda", I2C | ||
| 333 | "rfst2g_mtsloten3g", Standard | ||
| 334 | "rgmii_0_rx_ctl", Standard | ||
| 335 | "rgmii_0_rxc", Standard | ||
| 336 | "rgmii_0_rxd_0", Standard | ||
| 337 | "rgmii_0_rxd_1", Standard | ||
| 338 | "rgmii_0_rxd_2", Standard | ||
| 339 | "rgmii_0_rxd_3", Standard | ||
| 340 | "rgmii_0_tx_ctl", Standard | ||
| 341 | "rgmii_0_txc", Standard | ||
| 342 | "rgmii_0_txd_0", Standard | ||
| 343 | "rgmii_0_txd_1", Standard | ||
| 344 | "rgmii_0_txd_2", Standard | ||
| 345 | "rgmii_0_txd_3", Standard | ||
| 346 | "rgmii_1_rx_ctl", Standard | ||
| 347 | "rgmii_1_rxc", Standard | ||
| 348 | "rgmii_1_rxd_0", Standard | ||
| 349 | "rgmii_1_rxd_1", Standard | ||
| 350 | "rgmii_1_rxd_2", Standard | ||
| 351 | "rgmii_1_rxd_3", Standard | ||
| 352 | "rgmii_1_tx_ctl", Standard | ||
| 353 | "rgmii_1_txc", Standard | ||
| 354 | "rgmii_1_txd_0", Standard | ||
| 355 | "rgmii_1_txd_1", Standard | ||
| 356 | "rgmii_1_txd_2", Standard | ||
| 357 | "rgmii_1_txd_3", Standard | ||
| 358 | "rgmii_gpio_0", Standard | ||
| 359 | "rgmii_gpio_1", Standard | ||
| 360 | "rgmii_gpio_2", Standard | ||
| 361 | "rgmii_gpio_3", Standard | ||
| 362 | "rtxdata2g_txdata3g1", Standard | ||
| 363 | "rtxen2g_txdata3g2", Standard | ||
| 364 | "rxdata3g0", Standard | ||
| 365 | "rxdata3g1", Standard | ||
| 366 | "rxdata3g2", Standard | ||
| 367 | "sdio1_clk", Standard | ||
| 368 | "sdio1_cmd", Standard | ||
| 369 | "sdio1_data_0", Standard | ||
| 370 | "sdio1_data_1", Standard | ||
| 371 | "sdio1_data_2", Standard | ||
| 372 | "sdio1_data_3", Standard | ||
| 373 | "sdio4_clk", Standard | ||
| 374 | "sdio4_cmd", Standard | ||
| 375 | "sdio4_data_0", Standard | ||
| 376 | "sdio4_data_1", Standard | ||
| 377 | "sdio4_data_2", Standard | ||
| 378 | "sdio4_data_3", Standard | ||
| 379 | "sim_clk", Standard | ||
| 380 | "sim_data", Standard | ||
| 381 | "sim_det", Standard | ||
| 382 | "sim_resetn", Standard | ||
| 383 | "sim2_clk", Standard | ||
| 384 | "sim2_data", Standard | ||
| 385 | "sim2_det", Standard | ||
| 386 | "sim2_resetn", Standard | ||
| 387 | "sri_c", Standard | ||
| 388 | "sri_d", Standard | ||
| 389 | "sri_e", Standard | ||
| 390 | "ssp_extclk", Standard | ||
| 391 | "ssp0_clk", Standard | ||
| 392 | "ssp0_fs", Standard | ||
| 393 | "ssp0_rxd", Standard | ||
| 394 | "ssp0_txd", Standard | ||
| 395 | "ssp2_clk", Standard | ||
| 396 | "ssp2_fs_0", Standard | ||
| 397 | "ssp2_fs_1", Standard | ||
| 398 | "ssp2_fs_2", Standard | ||
| 399 | "ssp2_fs_3", Standard | ||
| 400 | "ssp2_rxd_0", Standard | ||
| 401 | "ssp2_rxd_1", Standard | ||
| 402 | "ssp2_txd_0", Standard | ||
| 403 | "ssp2_txd_1", Standard | ||
| 404 | "ssp3_clk", Standard | ||
| 405 | "ssp3_fs", Standard | ||
| 406 | "ssp3_rxd", Standard | ||
| 407 | "ssp3_txd", Standard | ||
| 408 | "ssp4_clk", Standard | ||
| 409 | "ssp4_fs", Standard | ||
| 410 | "ssp4_rxd", Standard | ||
| 411 | "ssp4_txd", Standard | ||
| 412 | "ssp5_clk", Standard | ||
| 413 | "ssp5_fs", Standard | ||
| 414 | "ssp5_rxd", Standard | ||
| 415 | "ssp5_txd", Standard | ||
| 416 | "ssp6_clk", Standard | ||
| 417 | "ssp6_fs", Standard | ||
| 418 | "ssp6_rxd", Standard | ||
| 419 | "ssp6_txd", Standard | ||
| 420 | "stat_1", Standard | ||
| 421 | "stat_2", Standard | ||
| 422 | "sysclken", Standard | ||
| 423 | "traceclk", Standard | ||
| 424 | "tracedt00", Standard | ||
| 425 | "tracedt01", Standard | ||
| 426 | "tracedt02", Standard | ||
| 427 | "tracedt03", Standard | ||
| 428 | "tracedt04", Standard | ||
| 429 | "tracedt05", Standard | ||
| 430 | "tracedt06", Standard | ||
| 431 | "tracedt07", Standard | ||
| 432 | "tracedt08", Standard | ||
| 433 | "tracedt09", Standard | ||
| 434 | "tracedt10", Standard | ||
| 435 | "tracedt11", Standard | ||
| 436 | "tracedt12", Standard | ||
| 437 | "tracedt13", Standard | ||
| 438 | "tracedt14", Standard | ||
| 439 | "tracedt15", Standard | ||
| 440 | "txdata3g0", Standard | ||
| 441 | "txpwrind", Standard | ||
| 442 | "uartb1_ucts", Standard | ||
| 443 | "uartb1_urts", Standard | ||
| 444 | "uartb1_urxd", Standard | ||
| 445 | "uartb1_utxd", Standard | ||
| 446 | "uartb2_urxd", Standard | ||
| 447 | "uartb2_utxd", Standard | ||
| 448 | "uartb3_ucts", Standard | ||
| 449 | "uartb3_urts", Standard | ||
| 450 | "uartb3_urxd", Standard | ||
| 451 | "uartb3_utxd", Standard | ||
| 452 | "uartb4_ucts", Standard | ||
| 453 | "uartb4_urts", Standard | ||
| 454 | "uartb4_urxd", Standard | ||
| 455 | "uartb4_utxd", Standard | ||
| 456 | "vc_cam1_scl", I2C | ||
| 457 | "vc_cam1_sda", I2C | ||
| 458 | "vc_cam2_scl", I2C | ||
| 459 | "vc_cam2_sda", I2C | ||
| 460 | "vc_cam3_scl", I2C | ||
| 461 | "vc_cam3_sda", I2C | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx25-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx25-pinctrl.txt new file mode 100644 index 000000000000..fd653bde18d5 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx25-pinctrl.txt | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | * Freescale IMX25 IOMUX Controller | ||
| 2 | |||
| 3 | Please refer to fsl,imx-pinctrl.txt in this directory for common binding part | ||
| 4 | and usage. | ||
| 5 | |||
| 6 | CONFIG bits definition: | ||
| 7 | PAD_CTL_HYS (1 << 8) | ||
| 8 | PAD_CTL_PKE (1 << 7) | ||
| 9 | PAD_CTL_PUE (1 << 6) | ||
| 10 | PAD_CTL_PUS_100K_DOWN (0 << 4) | ||
| 11 | PAD_CTL_PUS_47K_UP (1 << 4) | ||
| 12 | PAD_CTL_PUS_100K_UP (2 << 4) | ||
| 13 | PAD_CTL_PUS_22K_UP (3 << 4) | ||
| 14 | PAD_CTL_ODE_CMOS (0 << 3) | ||
| 15 | PAD_CTL_ODE_OPENDRAIN (1 << 3) | ||
| 16 | PAD_CTL_DSE_NOMINAL (0 << 1) | ||
| 17 | PAD_CTL_DSE_HIGH (1 << 1) | ||
| 18 | PAD_CTL_DSE_MAX (2 << 1) | ||
| 19 | PAD_CTL_SRE_FAST (1 << 0) | ||
| 20 | PAD_CTL_SRE_SLOW (0 << 0) | ||
| 21 | |||
| 22 | Refer to imx25-pinfunc.h in device tree source folder for all available | ||
| 23 | imx25 PIN_FUNC_ID. | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt index 353eca0efbf8..d1706ea82572 100644 --- a/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt | |||
| @@ -52,12 +52,25 @@ Required properties for pin configuration node: | |||
| 52 | CONFIG can be 0 or 1, meaning Pullup disable/enable. | 52 | CONFIG can be 0 or 1, meaning Pullup disable/enable. |
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | The iomux controller has gpio child nodes which are embedded in the iomux | ||
| 56 | control registers. They have to be defined as child nodes of the iomux device | ||
| 57 | node. If gpio subnodes are defined "#address-cells", "#size-cells" and "ranges" | ||
| 58 | properties for the iomux device node are required. | ||
| 55 | 59 | ||
| 56 | Example: | 60 | Example: |
| 57 | 61 | ||
| 58 | iomuxc: iomuxc@10015000 { | 62 | iomuxc: iomuxc@10015000 { |
| 59 | compatible = "fsl,imx27-iomuxc"; | 63 | compatible = "fsl,imx27-iomuxc"; |
| 60 | reg = <0x10015000 0x600>; | 64 | reg = <0x10015000 0x600>; |
| 65 | #address-cells = <1>; | ||
| 66 | #size-cells = <1>; | ||
| 67 | ranges; | ||
| 68 | |||
| 69 | gpio1: gpio@10015000 { | ||
| 70 | ... | ||
| 71 | }; | ||
| 72 | |||
| 73 | ... | ||
| 61 | 74 | ||
| 62 | uart { | 75 | uart { |
| 63 | pinctrl_uart1: uart-1 { | 76 | pinctrl_uart1: uart-1 { |
| @@ -83,6 +96,15 @@ The above example using macros: | |||
| 83 | iomuxc: iomuxc@10015000 { | 96 | iomuxc: iomuxc@10015000 { |
| 84 | compatible = "fsl,imx27-iomuxc"; | 97 | compatible = "fsl,imx27-iomuxc"; |
| 85 | reg = <0x10015000 0x600>; | 98 | reg = <0x10015000 0x600>; |
| 99 | #address-cells = <1>; | ||
| 100 | #size-cells = <1>; | ||
| 101 | ranges; | ||
| 102 | |||
| 103 | gpio1: gpio@10015000 { | ||
| 104 | ... | ||
| 105 | }; | ||
| 106 | |||
| 107 | ... | ||
| 86 | 108 | ||
| 87 | uart { | 109 | uart { |
| 88 | pinctrl_uart1: uart-1 { | 110 | pinctrl_uart1: uart-1 { |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt new file mode 100644 index 000000000000..6464bf769460 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt | |||
| @@ -0,0 +1,144 @@ | |||
| 1 | NVIDIA Tegra124 pinmux controller | ||
| 2 | |||
| 3 | The Tegra124 pinctrl binding is very similar to the Tegra20 and Tegra30 | ||
| 4 | pinctrl binding, as described in nvidia,tegra20-pinmux.txt and | ||
| 5 | nvidia,tegra30-pinmux.txt. In fact, this document assumes that binding as | ||
| 6 | a baseline, and only documents the differences between the two bindings. | ||
| 7 | |||
| 8 | Required properties: | ||
| 9 | - compatible: "nvidia,tegra124-pinmux" | ||
| 10 | - reg: Should contain a list of base address and size pairs for: | ||
| 11 | -- first entry - the drive strength and pad control registers. | ||
| 12 | -- second entry - the pinmux registers | ||
| 13 | |||
| 14 | Tegra124 adds the following optional properties for pin configuration subnodes. | ||
| 15 | The macros for options are defined in the | ||
| 16 | include/dt-binding/pinctrl/pinctrl-tegra.h. | ||
| 17 | - nvidia,enable-input: Integer. Enable the pin's input path. | ||
| 18 | enable :TEGRA_PIN_ENABLE0 and | ||
| 19 | disable or output only: TEGRA_PIN_DISABLE. | ||
| 20 | - nvidia,open-drain: Integer. | ||
| 21 | enable: TEGRA_PIN_ENABLE. | ||
| 22 | disable: TEGRA_PIN_DISABLE. | ||
| 23 | - nvidia,lock: Integer. Lock the pin configuration against further changes | ||
| 24 | until reset. | ||
| 25 | enable: TEGRA_PIN_ENABLE. | ||
| 26 | disable: TEGRA_PIN_DISABLE. | ||
| 27 | - nvidia,io-reset: Integer. Reset the IO path. | ||
| 28 | enable: TEGRA_PIN_ENABLE. | ||
| 29 | disable: TEGRA_PIN_DISABLE. | ||
| 30 | - nvidia,rcv-sel: Integer. Select VIL/VIH receivers. | ||
| 31 | normal: TEGRA_PIN_DISABLE | ||
| 32 | high: TEGRA_PIN_ENABLE | ||
| 33 | |||
| 34 | Please refer the Tegra TRM for complete details regarding which groups | ||
| 35 | support which functionality. | ||
| 36 | |||
| 37 | Valid values for pin and group names are: | ||
| 38 | |||
| 39 | per-pin mux groups: | ||
| 40 | |||
| 41 | These all support nvidia,function, nvidia,tristate, nvidia,pull, | ||
| 42 | nvidia,enable-input. Some support nvidia,lock nvidia,open-drain, | ||
| 43 | nvidia,io-reset and nvidia,rcv-sel. | ||
| 44 | |||
| 45 | ulpi_data0_po1, ulpi_data1_po2, ulpi_data2_po3, ulpi_data3_po4, | ||
| 46 | ulpi_data4_po5, ulpi_data5_po6, ulpi_data6_po7, ulpi_data7_po0, | ||
| 47 | ulpi_clk_py0, ulpi_dir_py1, ulpi_nxt_py2, ulpi_stp_py3, dap3_fs_pp0, | ||
| 48 | dap3_din_pp1, dap3_dout_pp2, dap3_sclk_pp3, pv0, pv1, sdmmc1_clk_pz0, | ||
| 49 | sdmmc1_cmd_pz1, sdmmc1_dat3_py4, sdmmc1_dat2_py5, sdmmc1_dat1_py6, | ||
| 50 | sdmmc1_dat0_py7, clk2_out_pw5, clk2_req_pcc5, hdmi_int_pn7, ddc_scl_pv4, | ||
| 51 | ddc_sda_pv5, uart2_rxd_pc3, uart2_txd_pc2, uart2_rts_n_pj6, | ||
| 52 | uart2_cts_n_pj5, uart3_txd_pw6, uart3_rxd_pw7, uart3_cts_n_pa1, | ||
| 53 | uart3_rts_n_pc0, pu0, pu1, pu2, pu3, pu4, pu5, pu6, gen1_i2c_scl_pc4, | ||
| 54 | gen1_i2c_sda_pc5, dap4_fs_pp4, dap4_din_pp5, dap4_dout_pp6, | ||
| 55 | dap4_sclk_pp7, clk3_out_pee0, clk3_req_pee1, pc7, pi5, pi7, pk0, pk1, | ||
| 56 | pj0, pj2, pk3, pk4, pk2, pi3, pi6, pg0, pg1, pg2, pg3, pg4, pg5, pg6, | ||
| 57 | pg7, ph0, ph1, ph2, ph3, ph4, ph5, ph6, ph7, pj7, pb0, pb1, pk7, pi0, | ||
| 58 | pi1, pi2, pi4, gen2_i2c_scl_pt5, gen2_i2c_sda_pt6, sdmmc4_clk_pcc4, | ||
| 59 | sdmmc4_cmd_pt7, sdmmc4_dat0_paa0, sdmmc4_dat1_paa1, sdmmc4_dat2_paa2, | ||
| 60 | sdmmc4_dat3_paa3, sdmmc4_dat4_paa4, sdmmc4_dat5_paa5, sdmmc4_dat6_paa6, | ||
| 61 | sdmmc4_dat7_paa7, cam_mclk_pcc0, pcc1, pbb0, cam_i2c_scl_pbb1, | ||
| 62 | cam_i2c_sda_pbb2, pbb3, pbb4, pbb5, pbb6, pbb7, pcc2, jtag_rtck, | ||
| 63 | pwr_i2c_scl_pz6, pwr_i2c_sda_pz7, kb_row0_pr0, kb_row1_pr1, kb_row2_pr2, | ||
| 64 | kb_row3_pr3, kb_row4_pr4, kb_row5_pr5, kb_row6_pr6, kb_row7_pr7, | ||
| 65 | kb_row8_ps0, kb_row9_ps1, kb_row10_ps2, kb_row11_ps3, kb_row12_ps4, | ||
| 66 | kb_row13_ps5, kb_row14_ps6, kb_row15_ps7, kb_col0_pq0, kb_col1_pq1, | ||
| 67 | kb_col2_pq2, kb_col3_pq3, kb_col4_pq4, kb_col5_pq5, kb_col6_pq6, | ||
| 68 | kb_col7_pq7, clk_32k_out_pa0, core_pwr_req, cpu_pwr_req, pwr_int_n, | ||
| 69 | clk_32k_in, owr, dap1_fs_pn0, dap1_din_pn1, dap1_dout_pn2, | ||
| 70 | dap1_sclk_pn3, dap_mclk1_req_pee2, dap_mclk1_pw4, spdif_in_pk6, | ||
| 71 | spdif_out_pk5, dap2_fs_pa2, dap2_din_pa4, dap2_dout_pa5, dap2_sclk_pa3, | ||
| 72 | dvfs_pwm_px0, gpio_x1_aud_px1, gpio_x3_aud_px3, dvfs_clk_px2, | ||
| 73 | gpio_x4_aud_px4, gpio_x5_aud_px5, gpio_x6_aud_px6, gpio_x7_aud_px7, | ||
| 74 | sdmmc3_clk_pa6, sdmmc3_cmd_pa7, sdmmc3_dat0_pb7, sdmmc3_dat1_pb6, | ||
| 75 | sdmmc3_dat2_pb5, sdmmc3_dat3_pb4, pex_l0_rst_n_pdd1, | ||
| 76 | pex_l0_clkreq_n_pdd2, pex_wake_n_pdd3, pex_l1_rst_n_pdd5, | ||
| 77 | pex_l1_clkreq_n_pdd6, hdmi_cec_pee3, sdmmc1_wp_n_pv3, | ||
| 78 | sdmmc3_cd_n_pv2, gpio_w2_aud_pw2, gpio_w3_aud_pw3, usb_vbus_en0_pn4, | ||
| 79 | usb_vbus_en1_pn5, sdmmc3_clk_lb_out_pee4, sdmmc3_clk_lb_in_pee5, | ||
| 80 | gmi_clk_lb, reset_out_n, kb_row16_pt0, kb_row17_pt1, usb_vbus_en2_pff1, | ||
| 81 | pff2, dp_hpd_pff0, | ||
| 82 | |||
| 83 | drive groups: | ||
| 84 | |||
| 85 | These all support nvidia,pull-down-strength, nvidia,pull-up-strength, | ||
| 86 | nvidia,slew-rate-rising, nvidia,slew-rate-falling. Most but not all | ||
| 87 | support nvidia,high-speed-mode, nvidia,schmitt, nvidia,low-power-mode | ||
| 88 | and nvidia,drive-type. | ||
| 89 | |||
| 90 | ao1, ao2, at1, at2, at3, at4, at5, cdev1, cdev2, dap1, dap2, dap3, dap4, | ||
| 91 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | ||
| 92 | gmh, owr, uda, gpv, dev3, cec, usb_vbus_en, ao3, ao0, hv0, sdio4, ao4. | ||
| 93 | |||
| 94 | Valid values for nvidia,functions are: | ||
| 95 | |||
| 96 | blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya, | ||
| 97 | displaya_alt, displayb, dtv, extperiph1, extperiph2, extperiph3, | ||
| 98 | gmi, gmi_alt, hda, hsi, i2c1, i2c2, i2c3, i2c4, i2cpwr, i2s0, | ||
| 99 | i2s1, i2s2, i2s3, i2s4, irda, kbc, owr, pmi, pwm0, pwm1, pwm2, pwm3, | ||
| 100 | pwron, reset_out_n, rsvd1, rsvd2, rsvd3, rsvd4, sdmmc1, sdmmc2, sdmmc3, | ||
| 101 | sdmmc4, soc, spdif, spi1, spi2, spi3, spi4, spi5, spi6, trace, uarta, | ||
| 102 | uartb, uartc, uartd, ulpi, usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, | ||
| 103 | vi, vi_alt1, vi_alt3, vimclk2, vimclk2_alt, sata, ccla, pe0, pe, pe1, | ||
| 104 | dp, rtck, sys, clk tmds. | ||
| 105 | |||
| 106 | Example: | ||
| 107 | |||
| 108 | pinmux: pinmux { | ||
| 109 | compatible = "nvidia,tegra124-pinmux"; | ||
| 110 | reg = <0x70000868 0x164 /* Pad control registers */ | ||
| 111 | 0x70003000 0x434>; /* PinMux registers */ | ||
| 112 | }; | ||
| 113 | |||
| 114 | Example pinmux entries: | ||
| 115 | |||
| 116 | pinctrl { | ||
| 117 | sdmmc4_default: pinmux { | ||
| 118 | sdmmc4_clk_pcc4 { | ||
| 119 | nvidia,pins = "sdmmc4_clk_pcc4", | ||
| 120 | nvidia,function = "sdmmc4"; | ||
| 121 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 122 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 123 | }; | ||
| 124 | |||
| 125 | sdmmc4_dat0_paa0 { | ||
| 126 | nvidia,pins = "sdmmc4_dat0_paa0", | ||
| 127 | "sdmmc4_dat1_paa1", | ||
| 128 | "sdmmc4_dat2_paa2", | ||
| 129 | "sdmmc4_dat3_paa3", | ||
| 130 | "sdmmc4_dat4_paa4", | ||
| 131 | "sdmmc4_dat5_paa5", | ||
| 132 | "sdmmc4_dat6_paa6", | ||
| 133 | "sdmmc4_dat7_paa7"; | ||
| 134 | nvidia,function = "sdmmc4"; | ||
| 135 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 136 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 137 | }; | ||
| 138 | }; | ||
| 139 | }; | ||
| 140 | |||
| 141 | sdhci@78000400 { | ||
| 142 | pinctrl-names = "default"; | ||
| 143 | pinctrl-0 = <&sdmmc4_default>; | ||
| 144 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt index 1958ca9f9e5c..4414163e76d2 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | |||
| @@ -151,6 +151,8 @@ drive-push-pull - drive actively high and low | |||
| 151 | drive-open-drain - drive with open drain | 151 | drive-open-drain - drive with open drain |
| 152 | drive-open-source - drive with open source | 152 | drive-open-source - drive with open source |
| 153 | drive-strength - sink or source at most X mA | 153 | drive-strength - sink or source at most X mA |
| 154 | input-enable - enable input on pin (no effect on output) | ||
| 155 | input-disable - disable input on pin (no effect on output) | ||
| 154 | input-schmitt-enable - enable schmitt-trigger mode | 156 | input-schmitt-enable - enable schmitt-trigger mode |
| 155 | input-schmitt-disable - disable schmitt-trigger mode | 157 | input-schmitt-disable - disable schmitt-trigger mode |
| 156 | input-debounce - debounce mode with debound time X | 158 | input-debounce - debounce mode with debound time X |
| @@ -158,6 +160,7 @@ low-power-enable - enable low power mode | |||
| 158 | low-power-disable - disable low power mode | 160 | low-power-disable - disable low power mode |
| 159 | output-low - set the pin to output mode with low level | 161 | output-low - set the pin to output mode with low level |
| 160 | output-high - set the pin to output mode with high level | 162 | output-high - set the pin to output mode with high level |
| 163 | slew-rate - set the slew rate | ||
| 161 | 164 | ||
| 162 | Some of the generic properties take arguments. For those that do, the | 165 | Some of the generic properties take arguments. For those that do, the |
| 163 | arguments are described below. | 166 | arguments are described below. |
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt index 7069a0b84e3a..bc0dfdfdb148 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt | |||
| @@ -98,7 +98,7 @@ below for more information. | |||
| 98 | In case when one register changes more than one pin's mux the | 98 | In case when one register changes more than one pin's mux the |
| 99 | pinctrl-single,bits need to be used which takes three parameters: | 99 | pinctrl-single,bits need to be used which takes three parameters: |
| 100 | 100 | ||
| 101 | pinctrl-single,bits = <0xdc 0x18, 0xff>; | 101 | pinctrl-single,bits = <0xdc 0x18 0xff>; |
| 102 | 102 | ||
| 103 | Where 0xdc is the offset from the pinctrl register base address for the | 103 | Where 0xdc is the offset from the pinctrl register base address for the |
| 104 | device pinctrl register, 0x18 is the desired value, and 0xff is the sub mask to | 104 | device pinctrl register, 0x18 is the desired value, and 0xff is the sub mask to |
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt new file mode 100644 index 000000000000..4c352be5dd61 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt | |||
| @@ -0,0 +1,92 @@ | |||
| 1 | Qualcomm MSM8974 TLMM block | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "qcom,msm8x74-pinctrl" | ||
| 5 | - reg: Should be the base address and length of the TLMM block. | ||
| 6 | - interrupts: Should be the parent IRQ of the TLMM block. | ||
| 7 | - interrupt-controller: Marks the device node as an interrupt controller. | ||
| 8 | - #interrupt-cells: Should be two. | ||
| 9 | - gpio-controller: Marks the device node as a GPIO controller. | ||
| 10 | - #gpio-cells : Should be two. | ||
| 11 | The first cell is the gpio pin number and the | ||
| 12 | second cell is used for optional parameters. | ||
| 13 | |||
| 14 | Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for | ||
| 15 | a general description of GPIO and interrupt bindings. | ||
| 16 | |||
| 17 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
| 18 | common pinctrl bindings used by client devices, including the meaning of the | ||
| 19 | phrase "pin configuration node". | ||
| 20 | |||
| 21 | Qualcomm's pin configuration nodes act as a container for an abitrary number of | ||
| 22 | subnodes. Each of these subnodes represents some desired configuration for a | ||
| 23 | pin, a group, or a list of pins or groups. This configuration can include the | ||
| 24 | mux function to select on those pin(s)/group(s), and various pin configuration | ||
| 25 | parameters, such as pull-up, drive strength, etc. | ||
| 26 | |||
| 27 | The name of each subnode is not important; all subnodes should be enumerated | ||
| 28 | and processed purely based on their content. | ||
| 29 | |||
| 30 | Each subnode only affects those parameters that are explicitly listed. In | ||
| 31 | other words, a subnode that lists a mux function but no pin configuration | ||
| 32 | parameters implies no information about any pin configuration parameters. | ||
| 33 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
| 34 | information about e.g. the mux function. | ||
| 35 | |||
| 36 | |||
| 37 | The following generic properties as defined in pinctrl-bindings.txt are valid | ||
| 38 | to specify in a pin configuration subnode: | ||
| 39 | pins, function, bias-disable, bias-pull-down, bias-pull,up, drive-strength. | ||
| 40 | |||
| 41 | Non-empty subnodes must specify the 'pins' property. | ||
| 42 | Note that not all properties are valid for all pins. | ||
| 43 | |||
| 44 | |||
| 45 | Valid values for qcom,pins are: | ||
| 46 | gpio0-gpio145 | ||
| 47 | Supports mux, bias and drive-strength | ||
| 48 | |||
| 49 | sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data | ||
| 50 | Supports bias and drive-strength | ||
| 51 | |||
| 52 | Valid values for qcom,function are: | ||
| 53 | blsp_i2c2, blsp_i2c6, blsp_i2c11, blsp_spi1, blsp_uart2, blsp_uart8, slimbus | ||
| 54 | |||
| 55 | (Note that this is not yet the complete list of functions) | ||
| 56 | |||
| 57 | |||
| 58 | |||
| 59 | Example: | ||
| 60 | |||
| 61 | msmgpio: pinctrl@fd510000 { | ||
| 62 | compatible = "qcom,msm8974-pinctrl"; | ||
| 63 | reg = <0xfd510000 0x4000>; | ||
| 64 | |||
| 65 | gpio-controller; | ||
| 66 | #gpio-cells = <2>; | ||
| 67 | interrupt-controller; | ||
| 68 | #interrupt-cells = <2>; | ||
| 69 | interrupts = <0 208 0>; | ||
| 70 | |||
| 71 | pinctrl-names = "default"; | ||
| 72 | pinctrl-0 = <&uart2_default>; | ||
| 73 | |||
| 74 | uart2_default: uart2_default { | ||
| 75 | mux { | ||
| 76 | qcom,pins = "gpio4", "gpio5"; | ||
| 77 | qcom,function = "blsp_uart2"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | tx { | ||
| 81 | qcom,pins = "gpio4"; | ||
| 82 | drive-strength = <4>; | ||
| 83 | bias-disable; | ||
| 84 | }; | ||
| 85 | |||
| 86 | rx { | ||
| 87 | qcom,pins = "gpio5"; | ||
| 88 | drive-strength = <2>; | ||
| 89 | bias-pull-up; | ||
| 90 | }; | ||
| 91 | }; | ||
| 92 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index d5dac7b843a9..35d2e1f186f0 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt | |||
| @@ -26,6 +26,11 @@ Optional properties: | |||
| 26 | - #gpio-range-cells: Mandatory when the PFC doesn't handle GPIO, forbidden | 26 | - #gpio-range-cells: Mandatory when the PFC doesn't handle GPIO, forbidden |
| 27 | otherwise. Should be 3. | 27 | otherwise. Should be 3. |
| 28 | 28 | ||
| 29 | - interrupts-extended: Specify the interrupts associated with external | ||
| 30 | IRQ pins. This property is mandatory when the PFC handles GPIOs and | ||
| 31 | forbidden otherwise. When specified, it must contain one interrupt per | ||
| 32 | external IRQ, sorted by external IRQ number. | ||
| 33 | |||
| 29 | The PFC node also acts as a container for pin configuration nodes. Please refer | 34 | The PFC node also acts as a container for pin configuration nodes. Please refer |
| 30 | to pinctrl-bindings.txt in this directory for the definition of the term "pin | 35 | to pinctrl-bindings.txt in this directory for the definition of the term "pin |
| 31 | configuration node" and for the common pinctrl bindings used by client devices. | 36 | configuration node" and for the common pinctrl bindings used by client devices. |
| @@ -103,6 +108,15 @@ Example 1: SH73A0 (SH-Mobile AG5) pin controller node | |||
| 103 | <0xe605801c 0x1c>; | 108 | <0xe605801c 0x1c>; |
| 104 | gpio-controller; | 109 | gpio-controller; |
| 105 | #gpio-cells = <2>; | 110 | #gpio-cells = <2>; |
| 111 | interrupts-extended = | ||
| 112 | <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, | ||
| 113 | <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, | ||
| 114 | <&irqpin1 0 0>, <&irqpin1 1 0>, <&irqpin1 2 0>, <&irqpin1 3 0>, | ||
| 115 | <&irqpin1 4 0>, <&irqpin1 5 0>, <&irqpin1 6 0>, <&irqpin1 7 0>, | ||
| 116 | <&irqpin2 0 0>, <&irqpin2 1 0>, <&irqpin2 2 0>, <&irqpin2 3 0>, | ||
| 117 | <&irqpin2 4 0>, <&irqpin2 5 0>, <&irqpin2 6 0>, <&irqpin2 7 0>, | ||
| 118 | <&irqpin3 0 0>, <&irqpin3 1 0>, <&irqpin3 2 0>, <&irqpin3 3 0>, | ||
| 119 | <&irqpin3 4 0>, <&irqpin3 5 0>, <&irqpin3 6 0>, <&irqpin3 7 0>; | ||
| 106 | }; | 120 | }; |
| 107 | 121 | ||
| 108 | Example 2: A GPIO LED node that references a GPIO | 122 | Example 2: A GPIO LED node that references a GPIO |
diff --git a/Documentation/devicetree/bindings/power/bq2415x.txt b/Documentation/devicetree/bindings/power/bq2415x.txt new file mode 100644 index 000000000000..d0327f0b59ad --- /dev/null +++ b/Documentation/devicetree/bindings/power/bq2415x.txt | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | Binding for TI bq2415x Li-Ion Charger | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should contain one of the following: | ||
| 5 | * "ti,bq24150" | ||
| 6 | * "ti,bq24150" | ||
| 7 | * "ti,bq24150a" | ||
| 8 | * "ti,bq24151" | ||
| 9 | * "ti,bq24151a" | ||
| 10 | * "ti,bq24152" | ||
| 11 | * "ti,bq24153" | ||
| 12 | * "ti,bq24153a" | ||
| 13 | * "ti,bq24155" | ||
| 14 | * "ti,bq24156" | ||
| 15 | * "ti,bq24156a" | ||
| 16 | * "ti,bq24158" | ||
| 17 | - reg: integer, i2c address of the device. | ||
| 18 | - ti,current-limit: integer, initial maximum current charger can pull | ||
| 19 | from power supply in mA. | ||
| 20 | - ti,weak-battery-voltage: integer, weak battery voltage threshold in mV. | ||
| 21 | The chip will use slow precharge if battery voltage | ||
| 22 | is below this value. | ||
| 23 | - ti,battery-regulation-voltage: integer, maximum charging voltage in mV. | ||
| 24 | - ti,charge-current: integer, maximum charging current in mA. | ||
| 25 | - ti,termination-current: integer, charge will be terminated when current in | ||
| 26 | constant-voltage phase drops below this value (in mA). | ||
| 27 | - ti,resistor-sense: integer, value of sensing resistor in milliohm. | ||
| 28 | |||
| 29 | Optional properties: | ||
| 30 | - ti,usb-charger-detection: phandle to usb charger detection device. | ||
| 31 | (required for auto mode) | ||
| 32 | |||
| 33 | Example from Nokia N900: | ||
| 34 | |||
| 35 | bq24150a { | ||
| 36 | compatible = "ti,bq24150a"; | ||
| 37 | reg = <0x6b>; | ||
| 38 | |||
| 39 | ti,current-limit = <100>; | ||
| 40 | ti,weak-battery-voltage = <3400>; | ||
| 41 | ti,battery-regulation-voltage = <4200>; | ||
| 42 | ti,charge-current = <650>; | ||
| 43 | ti,termination-current = <100>; | ||
| 44 | ti,resistor-sense = <68>; | ||
| 45 | |||
| 46 | ti,usb-charger-detection = <&isp1704>; | ||
| 47 | }; | ||
diff --git a/Documentation/devicetree/bindings/power/isp1704.txt b/Documentation/devicetree/bindings/power/isp1704.txt new file mode 100644 index 000000000000..fa3596907967 --- /dev/null +++ b/Documentation/devicetree/bindings/power/isp1704.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | Binding for NXP ISP1704 USB Charger Detection | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should contain one of the following: | ||
| 5 | * "nxp,isp1704" | ||
| 6 | - nxp,enable-gpio: Should contain a phandle + gpio-specifier | ||
| 7 | to the GPIO pin connected to the chip's enable pin. | ||
| 8 | - usb-phy: Should contain a phandle to the USB PHY | ||
| 9 | the ISP1704 is connected to. | ||
| 10 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | isp1704 { | ||
| 14 | compatible = "nxp,isp1704"; | ||
| 15 | nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_LOW>; | ||
| 16 | usb-phy = <&usb2_phy>; | ||
| 17 | }; | ||
diff --git a/Documentation/devicetree/bindings/power_supply/charger-manager.txt b/Documentation/devicetree/bindings/power_supply/charger-manager.txt new file mode 100644 index 000000000000..2b33750e3db2 --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/charger-manager.txt | |||
| @@ -0,0 +1,81 @@ | |||
| 1 | charger-manager bindings | ||
| 2 | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| 3 | |||
| 4 | Required properties : | ||
| 5 | - compatible : "charger-manager" | ||
| 6 | - <>-supply : for regulator consumer | ||
| 7 | - cm-num-chargers : number of chargers | ||
| 8 | - cm-chargers : name of chargers | ||
| 9 | - cm-fuel-gauge : name of battery fuel gauge | ||
| 10 | - subnode <regulator> : | ||
| 11 | - cm-regulator-name : name of charger regulator | ||
| 12 | - subnode <cable> : | ||
| 13 | - cm-cable-name : name of charger cable | ||
| 14 | - cm-cable-extcon : name of extcon dev | ||
| 15 | (optional) - cm-cable-min : minimum current of cable | ||
| 16 | (optional) - cm-cable-max : maximum current of cable | ||
| 17 | |||
| 18 | Optional properties : | ||
| 19 | - cm-name : charger manager's name (default : "battery") | ||
| 20 | - cm-poll-mode : polling mode (enum polling_modes) | ||
| 21 | - cm-poll-interval : polling interval | ||
| 22 | - cm-battery-stat : battery status (enum data_source) | ||
| 23 | - cm-fullbatt-* : data for full battery checking | ||
| 24 | - cm-thermal-zone : name of external thermometer's thermal zone | ||
| 25 | - cm-battery-* : threshold battery temperature for charging | ||
| 26 | -cold : critical cold temperature of battery for charging | ||
| 27 | -cold-in-minus : flag that cold temerature is in minus degree | ||
| 28 | -hot : critical hot temperature of battery for charging | ||
| 29 | -temp-diff : temperature difference to allow recharging | ||
| 30 | - cm-dis/charging-max = limits of charging duration | ||
| 31 | |||
| 32 | Example : | ||
| 33 | charger-manager@0 { | ||
| 34 | compatible = "charger-manager"; | ||
| 35 | chg-reg-supply = <&charger_regulator>; | ||
| 36 | |||
| 37 | cm-name = "battery"; | ||
| 38 | /* Always polling ON : 30s */ | ||
| 39 | cm-poll-mode = <1>; | ||
| 40 | cm-poll-interval = <30000>; | ||
| 41 | |||
| 42 | cm-fullbatt-vchkdrop-ms = <30000>; | ||
| 43 | cm-fullbatt-vchkdrop-volt = <150000>; | ||
| 44 | cm-fullbatt-soc = <100>; | ||
| 45 | |||
| 46 | cm-battery-stat = <3>; | ||
| 47 | |||
| 48 | cm-num-chargers = <3>; | ||
| 49 | cm-chargers = "charger0", "charger1", "charger2"; | ||
| 50 | |||
| 51 | cm-fuel-gauge = "fuelgauge0"; | ||
| 52 | |||
| 53 | cm-thermal-zone = "thermal_zone.1" | ||
| 54 | /* in deci centigrade */ | ||
| 55 | cm-battery-cold = <50>; | ||
| 56 | cm-battery-cold-in-minus; | ||
| 57 | cm-battery-hot = <800>; | ||
| 58 | cm-battery-temp-diff = <100>; | ||
| 59 | |||
| 60 | /* Allow charging for 5hr */ | ||
| 61 | cm-charging-max = <18000000>; | ||
| 62 | /* Allow discharging for 2hr */ | ||
| 63 | cm-discharging-max = <7200000>; | ||
| 64 | |||
| 65 | regulator@0 { | ||
| 66 | cm-regulator-name = "chg-reg"; | ||
| 67 | cable@0 { | ||
| 68 | cm-cable-name = "USB"; | ||
| 69 | cm-cable-extcon = "extcon-dev.0"; | ||
| 70 | cm-cable-min = <475000>; | ||
| 71 | cm-cable-max = <500000>; | ||
| 72 | }; | ||
| 73 | cable@1 { | ||
| 74 | cm-cable-name = "TA"; | ||
| 75 | cm-cable-extcon = "extcon-dev.0"; | ||
| 76 | cm-cable-min = <650000>; | ||
| 77 | cm-cable-max = <675000>; | ||
| 78 | }; | ||
| 79 | }; | ||
| 80 | |||
| 81 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt b/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt index 0e4269446580..29b28b8f9a89 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt | |||
| @@ -10,7 +10,6 @@ Currently defined compatibles: | |||
| 10 | Example: | 10 | Example: |
| 11 | 11 | ||
| 12 | ethernet@11300 { | 12 | ethernet@11300 { |
| 13 | device_type = "network"; | ||
| 14 | compatible = "fsl,mpc8272-fcc-enet", | 13 | compatible = "fsl,mpc8272-fcc-enet", |
| 15 | "fsl,cpm2-fcc-enet"; | 14 | "fsl,cpm2-fcc-enet"; |
| 16 | reg = <11300 20 8400 100 11390 1>; | 15 | reg = <11300 20 8400 100 11390 1>; |
| @@ -33,7 +32,6 @@ fsl,mdc-pin : pin of port C controlling mdio clock | |||
| 33 | 32 | ||
| 34 | Example: | 33 | Example: |
| 35 | mdio@10d40 { | 34 | mdio@10d40 { |
| 36 | device_type = "mdio"; | ||
| 37 | compatible = "fsl,mpc8272ads-mdio-bitbang", | 35 | compatible = "fsl,mpc8272ads-mdio-bitbang", |
| 38 | "fsl,mpc8272-mdio-bitbang", | 36 | "fsl,mpc8272-mdio-bitbang", |
| 39 | "fsl,cpm2-mdio-bitbang"; | 37 | "fsl,cpm2-mdio-bitbang"; |
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt b/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt index c5b43061db3a..ec6ee2e864a2 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt | |||
| @@ -1,8 +1,6 @@ | |||
| 1 | * Pin configuration nodes | 1 | * Pin configuration nodes |
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - linux,phandle : phandle of this node; likely referenced by a QE | ||
| 5 | device. | ||
| 6 | - pio-map : array of pin configurations. Each pin is defined by 6 | 4 | - pio-map : array of pin configurations. Each pin is defined by 6 |
| 7 | integers. The six numbers are respectively: port, pin, dir, | 5 | integers. The six numbers are respectively: port, pin, dir, |
| 8 | open_drain, assignment, has_irq. | 6 | open_drain, assignment, has_irq. |
| @@ -29,7 +27,6 @@ Required properties: | |||
| 29 | 27 | ||
| 30 | Example: | 28 | Example: |
| 31 | ucc_pin@01 { | 29 | ucc_pin@01 { |
| 32 | linux,phandle = <140001>; | ||
| 33 | pio-map = < | 30 | pio-map = < |
| 34 | /* port pin dir open_drain assignment has_irq */ | 31 | /* port pin dir open_drain assignment has_irq */ |
| 35 | 0 3 1 0 1 0 /* TxD0 */ | 32 | 0 3 1 0 1 0 /* TxD0 */ |
diff --git a/Documentation/devicetree/bindings/pwm/atmel-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-pwm.txt new file mode 100644 index 000000000000..02331b904d4e --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/atmel-pwm.txt | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | Atmel PWM controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be one of: | ||
| 5 | - "atmel,at91sam9rl-pwm" | ||
| 6 | - "atmel,sama5d3-pwm" | ||
| 7 | - reg: physical base address and length of the controller's registers | ||
| 8 | - #pwm-cells: Should be 3. See pwm.txt in this directory for a | ||
| 9 | description of the cells format. | ||
| 10 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | pwm0: pwm@f8034000 { | ||
| 14 | compatible = "atmel,at91sam9rl-pwm"; | ||
| 15 | reg = <0xf8034000 0x400>; | ||
| 16 | #pwm-cells = <3>; | ||
| 17 | }; | ||
| 18 | |||
| 19 | pwmleds { | ||
| 20 | compatible = "pwm-leds"; | ||
| 21 | |||
| 22 | d1 { | ||
| 23 | label = "d1"; | ||
| 24 | pwms = <&pwm0 3 5000 0> | ||
| 25 | max-brightness = <255>; | ||
| 26 | }; | ||
| 27 | |||
| 28 | d2 { | ||
| 29 | label = "d2"; | ||
| 30 | pwms = <&pwm0 1 5000 1> | ||
| 31 | max-brightness = <255>; | ||
| 32 | }; | ||
| 33 | }; | ||
diff --git a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt index c3fc57af8772..c7ea9d4a988b 100644 --- a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | |||
| @@ -7,6 +7,12 @@ Required properties: | |||
| 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: should be 2. See pwm.txt in this directory for a description of | 8 | - #pwm-cells: should be 2. See pwm.txt in this directory for a description of |
| 9 | the cells format. | 9 | the cells format. |
| 10 | - clocks: Must contain one entry, for the module clock. | ||
| 11 | See ../clocks/clock-bindings.txt for details. | ||
| 12 | - resets: Must contain an entry for each entry in reset-names. | ||
| 13 | See ../reset/reset.txt for details. | ||
| 14 | - reset-names: Must include the following entries: | ||
| 15 | - pwm | ||
| 10 | 16 | ||
| 11 | Example: | 17 | Example: |
| 12 | 18 | ||
| @@ -14,4 +20,7 @@ Example: | |||
| 14 | compatible = "nvidia,tegra20-pwm"; | 20 | compatible = "nvidia,tegra20-pwm"; |
| 15 | reg = <0x7000a000 0x100>; | 21 | reg = <0x7000a000 0x100>; |
| 16 | #pwm-cells = <2>; | 22 | #pwm-cells = <2>; |
| 23 | clocks = <&tegra_car 17>; | ||
| 24 | resets = <&tegra_car 17>; | ||
| 25 | reset-names = "pwm"; | ||
| 17 | }; | 26 | }; |
diff --git a/Documentation/devicetree/bindings/pwm/pwm-lp3943.txt b/Documentation/devicetree/bindings/pwm/pwm-lp3943.txt new file mode 100644 index 000000000000..7bd9d3b12ce1 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/pwm-lp3943.txt | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | TI/National Semiconductor LP3943 PWM controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "ti,lp3943-pwm" | ||
| 5 | - #pwm-cells: Should be 2. See pwm.txt in this directory for a | ||
| 6 | description of the cells format. | ||
| 7 | Note that this hardware limits the period length to the | ||
| 8 | range 6250~1600000. | ||
| 9 | - ti,pwm0 or ti,pwm1: Output pin number(s) for PWM channel 0 or 1. | ||
| 10 | 0 = output 0 | ||
| 11 | 1 = output 1 | ||
| 12 | . | ||
| 13 | . | ||
| 14 | 15 = output 15 | ||
| 15 | |||
| 16 | Example: | ||
| 17 | PWM 0 is for RGB LED brightness control | ||
| 18 | PWM 1 is for brightness control of LP8557 backlight device | ||
| 19 | |||
| 20 | &i2c3 { | ||
| 21 | lp3943@60 { | ||
| 22 | compatible = "ti,lp3943"; | ||
| 23 | reg = <0x60>; | ||
| 24 | |||
| 25 | /* | ||
| 26 | * PWM 0 : output 8, 9 and 10 | ||
| 27 | * PWM 1 : output 15 | ||
| 28 | */ | ||
| 29 | pwm3943: pwm { | ||
| 30 | compatible = "ti,lp3943-pwm"; | ||
| 31 | #pwm-cells = <2>; | ||
| 32 | ti,pwm0 = <8 9 10>; | ||
| 33 | ti,pwm1 = <15>; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 37 | }; | ||
| 38 | |||
| 39 | /* LEDs control with PWM 0 of LP3943 */ | ||
| 40 | pwmleds { | ||
| 41 | compatible = "pwm-leds"; | ||
| 42 | rgb { | ||
| 43 | label = "indi::rgb"; | ||
| 44 | pwms = <&pwm3943 0 10000>; | ||
| 45 | max-brightness = <255>; | ||
| 46 | }; | ||
| 47 | }; | ||
| 48 | |||
| 49 | &i2c4 { | ||
| 50 | /* Backlight control with PWM 1 of LP3943 */ | ||
| 51 | backlight@2c { | ||
| 52 | compatible = "ti,lp8557"; | ||
| 53 | reg = <0x2c>; | ||
| 54 | |||
| 55 | pwms = <&pwm3943 1 10000>; | ||
| 56 | pwm-names = "lp8557"; | ||
| 57 | }; | ||
| 58 | }; | ||
diff --git a/Documentation/devicetree/bindings/pwm/pxa-pwm.txt b/Documentation/devicetree/bindings/pwm/pxa-pwm.txt new file mode 100644 index 000000000000..5ae9f1e3c338 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/pxa-pwm.txt | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | Marvell PWM controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be one or more of: | ||
| 5 | - "marvell,pxa250-pwm" | ||
| 6 | - "marvell,pxa270-pwm" | ||
| 7 | - "marvell,pxa168-pwm" | ||
| 8 | - "marvell,pxa910-pwm" | ||
| 9 | - reg: Physical base address and length of the registers used by the PWM channel | ||
| 10 | Note that one device instance must be created for each PWM that is used, so the | ||
| 11 | length covers only the register window for one PWM output, not that of the | ||
| 12 | entire PWM controller. Currently length is 0x10 for all supported devices. | ||
| 13 | - #pwm-cells: Should be 1. This cell is used to specify the period in | ||
| 14 | nanoseconds. | ||
| 15 | |||
| 16 | Example PWM device node: | ||
| 17 | |||
| 18 | pwm0: pwm@40b00000 { | ||
| 19 | compatible = "marvell,pxa250-pwm"; | ||
| 20 | reg = <0x40b00000 0x10>; | ||
| 21 | #pwm-cells = <1>; | ||
| 22 | }; | ||
| 23 | |||
| 24 | Example PWM client node: | ||
| 25 | |||
| 26 | backlight { | ||
| 27 | compatible = "pwm-backlight"; | ||
| 28 | pwms = <&pwm0 5000000>; | ||
| 29 | ... | ||
| 30 | } | ||
diff --git a/Documentation/devicetree/bindings/regulator/gpio-regulator.txt b/Documentation/devicetree/bindings/regulator/gpio-regulator.txt index 63c659800c03..e5cac1e0ca8a 100644 --- a/Documentation/devicetree/bindings/regulator/gpio-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/gpio-regulator.txt | |||
| @@ -8,8 +8,12 @@ Required properties: | |||
| 8 | Optional properties: | 8 | Optional properties: |
| 9 | - enable-gpio : GPIO to use to enable/disable the regulator. | 9 | - enable-gpio : GPIO to use to enable/disable the regulator. |
| 10 | - gpios : GPIO group used to control voltage. | 10 | - gpios : GPIO group used to control voltage. |
| 11 | - gpios-states : gpios pin's initial states array. 0: LOW, 1: HIGH. | ||
| 12 | defualt is LOW if nothing is specified. | ||
| 11 | - startup-delay-us : Startup time in microseconds. | 13 | - startup-delay-us : Startup time in microseconds. |
| 12 | - enable-active-high : Polarity of GPIO is active high (default is low). | 14 | - enable-active-high : Polarity of GPIO is active high (default is low). |
| 15 | - regulator-type : Specifies what is being regulated, must be either | ||
| 16 | "voltage" or "current", defaults to current. | ||
| 13 | 17 | ||
| 14 | Any property defined as part of the core regulator binding defined in | 18 | Any property defined as part of the core regulator binding defined in |
| 15 | regulator.txt can also be used. | 19 | regulator.txt can also be used. |
diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt index fc989b2e8057..34ef5d16d0f1 100644 --- a/Documentation/devicetree/bindings/regulator/pfuze100.txt +++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | PFUZE100 family of regulators | 1 | PFUZE100 family of regulators |
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible: "fsl,pfuze100" | 4 | - compatible: "fsl,pfuze100" or "fsl,pfuze200" |
| 5 | - reg: I2C slave address | 5 | - reg: I2C slave address |
| 6 | 6 | ||
| 7 | Required child node: | 7 | Required child node: |
| @@ -10,11 +10,14 @@ Required child node: | |||
| 10 | Documentation/devicetree/bindings/regulator/regulator.txt. | 10 | Documentation/devicetree/bindings/regulator/regulator.txt. |
| 11 | 11 | ||
| 12 | The valid names for regulators are: | 12 | The valid names for regulators are: |
| 13 | --PFUZE100 | ||
| 13 | sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6 | 14 | sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6 |
| 15 | --PFUZE200 | ||
| 16 | sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6 | ||
| 14 | 17 | ||
| 15 | Each regulator is defined using the standard binding for regulators. | 18 | Each regulator is defined using the standard binding for regulators. |
| 16 | 19 | ||
| 17 | Example: | 20 | Example 1: PFUZE100 |
| 18 | 21 | ||
| 19 | pmic: pfuze100@08 { | 22 | pmic: pfuze100@08 { |
| 20 | compatible = "fsl,pfuze100"; | 23 | compatible = "fsl,pfuze100"; |
| @@ -113,3 +116,92 @@ Example: | |||
| 113 | }; | 116 | }; |
| 114 | }; | 117 | }; |
| 115 | }; | 118 | }; |
| 119 | |||
| 120 | |||
| 121 | Example 2: PFUZE200 | ||
| 122 | |||
| 123 | pmic: pfuze200@08 { | ||
| 124 | compatible = "fsl,pfuze200"; | ||
| 125 | reg = <0x08>; | ||
| 126 | |||
| 127 | regulators { | ||
| 128 | sw1a_reg: sw1ab { | ||
| 129 | regulator-min-microvolt = <300000>; | ||
| 130 | regulator-max-microvolt = <1875000>; | ||
| 131 | regulator-boot-on; | ||
| 132 | regulator-always-on; | ||
| 133 | regulator-ramp-delay = <6250>; | ||
| 134 | }; | ||
| 135 | |||
| 136 | sw2_reg: sw2 { | ||
| 137 | regulator-min-microvolt = <800000>; | ||
| 138 | regulator-max-microvolt = <3300000>; | ||
| 139 | regulator-boot-on; | ||
| 140 | regulator-always-on; | ||
| 141 | }; | ||
| 142 | |||
| 143 | sw3a_reg: sw3a { | ||
| 144 | regulator-min-microvolt = <400000>; | ||
| 145 | regulator-max-microvolt = <1975000>; | ||
| 146 | regulator-boot-on; | ||
| 147 | regulator-always-on; | ||
| 148 | }; | ||
| 149 | |||
| 150 | sw3b_reg: sw3b { | ||
| 151 | regulator-min-microvolt = <400000>; | ||
| 152 | regulator-max-microvolt = <1975000>; | ||
| 153 | regulator-boot-on; | ||
| 154 | regulator-always-on; | ||
| 155 | }; | ||
| 156 | |||
| 157 | swbst_reg: swbst { | ||
| 158 | regulator-min-microvolt = <5000000>; | ||
| 159 | regulator-max-microvolt = <5150000>; | ||
| 160 | }; | ||
| 161 | |||
| 162 | snvs_reg: vsnvs { | ||
| 163 | regulator-min-microvolt = <1000000>; | ||
| 164 | regulator-max-microvolt = <3000000>; | ||
| 165 | regulator-boot-on; | ||
| 166 | regulator-always-on; | ||
| 167 | }; | ||
| 168 | |||
| 169 | vref_reg: vrefddr { | ||
| 170 | regulator-boot-on; | ||
| 171 | regulator-always-on; | ||
| 172 | }; | ||
| 173 | |||
| 174 | vgen1_reg: vgen1 { | ||
| 175 | regulator-min-microvolt = <800000>; | ||
| 176 | regulator-max-microvolt = <1550000>; | ||
| 177 | }; | ||
| 178 | |||
| 179 | vgen2_reg: vgen2 { | ||
| 180 | regulator-min-microvolt = <800000>; | ||
| 181 | regulator-max-microvolt = <1550000>; | ||
| 182 | }; | ||
| 183 | |||
| 184 | vgen3_reg: vgen3 { | ||
| 185 | regulator-min-microvolt = <1800000>; | ||
| 186 | regulator-max-microvolt = <3300000>; | ||
| 187 | }; | ||
| 188 | |||
| 189 | vgen4_reg: vgen4 { | ||
| 190 | regulator-min-microvolt = <1800000>; | ||
| 191 | regulator-max-microvolt = <3300000>; | ||
| 192 | regulator-always-on; | ||
| 193 | }; | ||
| 194 | |||
| 195 | vgen5_reg: vgen5 { | ||
| 196 | regulator-min-microvolt = <1800000>; | ||
| 197 | regulator-max-microvolt = <3300000>; | ||
| 198 | regulator-always-on; | ||
| 199 | }; | ||
| 200 | |||
| 201 | vgen6_reg: vgen6 { | ||
| 202 | regulator-min-microvolt = <1800000>; | ||
| 203 | regulator-max-microvolt = <3300000>; | ||
| 204 | regulator-always-on; | ||
| 205 | }; | ||
| 206 | }; | ||
| 207 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt b/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt index 2e57a33e9029..c58db75f959e 100644 --- a/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt | |||
| @@ -4,10 +4,14 @@ Required Properties: | |||
| 4 | - compatible: Should be one of: | 4 | - compatible: Should be one of: |
| 5 | - "ti,abb-v1" for older SoCs like OMAP3 | 5 | - "ti,abb-v1" for older SoCs like OMAP3 |
| 6 | - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5 | 6 | - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5 |
| 7 | - "ti,abb-v3" for a generic definition where setup and control registers are | ||
| 8 | provided (example: DRA7) | ||
| 7 | - reg: Address and length of the register set for the device. It contains | 9 | - reg: Address and length of the register set for the device. It contains |
| 8 | the information of registers in the same order as described by reg-names | 10 | the information of registers in the same order as described by reg-names |
| 9 | - reg-names: Should contain the reg names | 11 | - reg-names: Should contain the reg names |
| 10 | - "base-address" - contains base address of ABB module | 12 | - "base-address" - contains base address of ABB module (ti,abb-v1,ti,abb-v2) |
| 13 | - "control-address" - contains control register address of ABB module (ti,abb-v3) | ||
| 14 | - "setup-address" - contains setup register address of ABB module (ti,abb-v3) | ||
| 11 | - "int-address" - contains address of interrupt register for ABB module | 15 | - "int-address" - contains address of interrupt register for ABB module |
| 12 | (also see Optional properties) | 16 | (also see Optional properties) |
| 13 | - #address-cell: should be 0 | 17 | - #address-cell: should be 0 |
diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt new file mode 100644 index 000000000000..31406fd4a43e --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | Haoyu Microelectronics HYM8563 Real Time Clock | ||
| 2 | |||
| 3 | The HYM8563 provides basic rtc and alarm functionality | ||
| 4 | as well as a clock output of up to 32kHz. | ||
| 5 | |||
| 6 | Required properties: | ||
| 7 | - compatible: should be: "haoyu,hym8563" | ||
| 8 | - reg: i2c address | ||
| 9 | - interrupts: rtc alarm/event interrupt | ||
| 10 | - #clock-cells: the value should be 0 | ||
| 11 | |||
| 12 | Example: | ||
| 13 | |||
| 14 | hym8563: hym8563@51 { | ||
| 15 | compatible = "haoyu,hym8563"; | ||
| 16 | reg = <0x51>; | ||
| 17 | |||
| 18 | interrupts = <13 IRQ_TYPE_EDGE_FALLING>; | ||
| 19 | |||
| 20 | #clock-cells = <0>; | ||
| 21 | }; | ||
| 22 | |||
| 23 | device { | ||
| 24 | ... | ||
| 25 | clocks = <&hym8563>; | ||
| 26 | ... | ||
| 27 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/maxim,ds1742.txt b/Documentation/devicetree/bindings/rtc/maxim,ds1742.txt new file mode 100644 index 000000000000..d0f937c355b5 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/maxim,ds1742.txt | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | * Maxim (Dallas) DS1742/DS1743 Real Time Clock | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should contain "maxim,ds1742". | ||
| 5 | - reg: Physical base address of the RTC and length of memory | ||
| 6 | mapped region. | ||
| 7 | |||
| 8 | Example: | ||
| 9 | rtc: rtc@10000000 { | ||
| 10 | compatible = "maxim,ds1742"; | ||
| 11 | reg = <0x10000000 0x800>; | ||
| 12 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt b/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt index 93f45e9dce7c..652d1ff2e8be 100644 --- a/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt +++ b/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt | |||
| @@ -9,6 +9,8 @@ Required properties: | |||
| 9 | - compatible : should be "nvidia,tegra20-rtc". | 9 | - compatible : should be "nvidia,tegra20-rtc". |
| 10 | - reg : Specifies base physical address and size of the registers. | 10 | - reg : Specifies base physical address and size of the registers. |
| 11 | - interrupts : A single interrupt specifier. | 11 | - interrupts : A single interrupt specifier. |
| 12 | - clocks : Must contain one entry, for the module clock. | ||
| 13 | See ../clocks/clock-bindings.txt for details. | ||
| 12 | 14 | ||
| 13 | Example: | 15 | Example: |
| 14 | 16 | ||
| @@ -16,4 +18,5 @@ timer { | |||
| 16 | compatible = "nvidia,tegra20-rtc"; | 18 | compatible = "nvidia,tegra20-rtc"; |
| 17 | reg = <0x7000e000 0x100>; | 19 | reg = <0x7000e000 0x100>; |
| 18 | interrupts = <0 2 0x04>; | 20 | interrupts = <0 2 0x04>; |
| 21 | clocks = <&tegra_car 4>; | ||
| 19 | }; | 22 | }; |
diff --git a/Documentation/devicetree/bindings/rtc/sunxi-rtc.txt b/Documentation/devicetree/bindings/rtc/sunxi-rtc.txt new file mode 100644 index 000000000000..7cb9dbf34878 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/sunxi-rtc.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | * sun4i/sun7i Real Time Clock | ||
| 2 | |||
| 3 | RTC controller for the Allwinner A10/A20 | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | - compatible : Should be "allwinner,sun4i-rtc" or "allwinner,sun7i-a20-rtc" | ||
| 7 | - reg: physical base address of the controller and length of memory mapped | ||
| 8 | region. | ||
| 9 | - interrupts: IRQ line for the RTC. | ||
| 10 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | rtc: rtc@01c20d00 { | ||
| 14 | compatible = "allwinner,sun4i-rtc"; | ||
| 15 | reg = <0x01c20d00 0x20>; | ||
| 16 | interrupts = <24>; | ||
| 17 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/atmel-usart.txt b/Documentation/devicetree/bindings/serial/atmel-usart.txt index 2191dcb9f1da..9c5d19ac935c 100644 --- a/Documentation/devicetree/bindings/serial/atmel-usart.txt +++ b/Documentation/devicetree/bindings/serial/atmel-usart.txt | |||
| @@ -6,6 +6,9 @@ Required properties: | |||
| 6 | additional mode or an USART new feature. | 6 | additional mode or an USART new feature. |
| 7 | - reg: Should contain registers location and length | 7 | - reg: Should contain registers location and length |
| 8 | - interrupts: Should contain interrupt | 8 | - interrupts: Should contain interrupt |
| 9 | - clock-names: tuple listing input clock names. | ||
| 10 | Required elements: "usart" | ||
| 11 | - clocks: phandles to input clocks. | ||
| 9 | 12 | ||
| 10 | Optional properties: | 13 | Optional properties: |
| 11 | - atmel,use-dma-rx: use of PDC or DMA for receiving data | 14 | - atmel,use-dma-rx: use of PDC or DMA for receiving data |
| @@ -26,6 +29,8 @@ Example: | |||
| 26 | compatible = "atmel,at91sam9260-usart"; | 29 | compatible = "atmel,at91sam9260-usart"; |
| 27 | reg = <0xfff8c000 0x4000>; | 30 | reg = <0xfff8c000 0x4000>; |
| 28 | interrupts = <7>; | 31 | interrupts = <7>; |
| 32 | clocks = <&usart0_clk>; | ||
| 33 | clock-names = "usart"; | ||
| 29 | atmel,use-dma-rx; | 34 | atmel,use-dma-rx; |
| 30 | atmel,use-dma-tx; | 35 | atmel,use-dma-tx; |
| 31 | }; | 36 | }; |
| @@ -35,6 +40,8 @@ Example: | |||
| 35 | compatible = "atmel,at91sam9260-usart"; | 40 | compatible = "atmel,at91sam9260-usart"; |
| 36 | reg = <0xf001c000 0x100>; | 41 | reg = <0xf001c000 0x100>; |
| 37 | interrupts = <12 4 5>; | 42 | interrupts = <12 4 5>; |
| 43 | clocks = <&usart0_clk>; | ||
| 44 | clock-names = "usart"; | ||
| 38 | atmel,use-dma-rx; | 45 | atmel,use-dma-rx; |
| 39 | atmel,use-dma-tx; | 46 | atmel,use-dma-tx; |
| 40 | dmas = <&dma0 2 0x3>, | 47 | dmas = <&dma0 2 0x3>, |
diff --git a/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt b/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt new file mode 100644 index 000000000000..12f3cf834deb --- /dev/null +++ b/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | * Cirrus Logic CLPS711X Universal Asynchronous Receiver/Transmitter (UART) | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "cirrus,clps711x-uart". | ||
| 5 | - reg: Address and length of the register set for the device. | ||
| 6 | - interrupts: Should contain UART TX and RX interrupt. | ||
| 7 | - clocks: Should contain UART core clock number. | ||
| 8 | - syscon: Phandle to SYSCON node, which contain UART control bits. | ||
| 9 | |||
| 10 | Optional properties: | ||
| 11 | - uart-use-ms: Indicate the UART has modem signal (DCD, DSR, CTS). | ||
| 12 | |||
| 13 | Note: Each UART port should have an alias correctly numbered | ||
| 14 | in "aliases" node. | ||
| 15 | |||
| 16 | Example: | ||
| 17 | aliases { | ||
| 18 | serial0 = &uart1; | ||
| 19 | }; | ||
| 20 | |||
| 21 | uart1: uart@80000480 { | ||
| 22 | compatible = "cirrus,clps711x-uart"; | ||
| 23 | reg = <0x80000480 0x80>; | ||
| 24 | interrupts = <12 13>; | ||
| 25 | clocks = <&clks 11>; | ||
| 26 | syscon = <&syscon1>; | ||
| 27 | uart-use-ms; | ||
| 28 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt b/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt index 392a4493eebd..845850caf088 100644 --- a/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt +++ b/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt | |||
| @@ -4,8 +4,17 @@ Required properties: | |||
| 4 | - compatible : should be "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart". | 4 | - compatible : should be "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart". |
| 5 | - reg: Should contain UART controller registers location and length. | 5 | - reg: Should contain UART controller registers location and length. |
| 6 | - interrupts: Should contain UART controller interrupts. | 6 | - interrupts: Should contain UART controller interrupts. |
| 7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | 7 | - clocks: Must contain one entry, for the module clock. |
| 8 | request selector for this UART controller. | 8 | See ../clocks/clock-bindings.txt for details. |
| 9 | - resets : Must contain an entry for each entry in reset-names. | ||
| 10 | See ../reset/reset.txt for details. | ||
| 11 | - reset-names : Must include the following entries: | ||
| 12 | - serial | ||
| 13 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 14 | See ../dma/dma.txt for details. | ||
| 15 | - dma-names : Must include the following entries: | ||
| 16 | - rx | ||
| 17 | - tx | ||
| 9 | 18 | ||
| 10 | Optional properties: | 19 | Optional properties: |
| 11 | - nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable | 20 | - nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable |
| @@ -18,7 +27,11 @@ serial@70006000 { | |||
| 18 | reg = <0x70006000 0x40>; | 27 | reg = <0x70006000 0x40>; |
| 19 | reg-shift = <2>; | 28 | reg-shift = <2>; |
| 20 | interrupts = <0 36 0x04>; | 29 | interrupts = <0 36 0x04>; |
| 21 | nvidia,dma-request-selector = <&apbdma 8>; | ||
| 22 | nvidia,enable-modem-interrupt; | 30 | nvidia,enable-modem-interrupt; |
| 31 | clocks = <&tegra_car 6>; | ||
| 32 | resets = <&tegra_car 6>; | ||
| 33 | reset-names = "serial"; | ||
| 34 | dmas = <&apbdma 8>, <&apbdma 8>; | ||
| 35 | dma-names = "rx", "tx"; | ||
| 23 | status = "disabled"; | 36 | status = "disabled"; |
| 24 | }; | 37 | }; |
diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt new file mode 100644 index 000000000000..f372cf29068d --- /dev/null +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | * Renesas SH-Mobile Serial Communication Interface | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - compatible: Must contain one of the following: | ||
| 6 | |||
| 7 | - "renesas,scif-r8a7790" for R8A7790 (R-Car H2) SCIF compatible UART. | ||
| 8 | - "renesas,scifa-r8a7790" for R8A7790 (R-Car H2) SCIFA compatible UART. | ||
| 9 | - "renesas,scifb-r8a7790" for R8A7790 (R-Car H2) SCIFB compatible UART. | ||
| 10 | - "renesas,hscif-r8a7790" for R8A7790 (R-Car H2) HSCIF compatible UART. | ||
| 11 | - "renesas,scif-r8a7791" for R8A7791 (R-Car M2) SCIF compatible UART. | ||
| 12 | - "renesas,scifa-r8a7791" for R8A7791 (R-Car M2) SCIFA compatible UART. | ||
| 13 | - "renesas,scifb-r8a7791" for R8A7791 (R-Car M2) SCIFB compatible UART. | ||
| 14 | - "renesas,hscif-r8a7791" for R8A7791 (R-Car M2) HSCIF compatible UART. | ||
| 15 | - "renesas,scif" for generic SCIF compatible UART. | ||
| 16 | - "renesas,scifa" for generic SCIFA compatible UART. | ||
| 17 | - "renesas,scifb" for generic SCIFB compatible UART. | ||
| 18 | - "renesas,hscif" for generic HSCIF compatible UART. | ||
| 19 | |||
| 20 | When compatible with the generic version, nodes must list the | ||
| 21 | SoC-specific version corresponding to the platform first followed by the | ||
| 22 | generic version. | ||
| 23 | |||
| 24 | - reg: Base address and length of the I/O registers used by the UART. | ||
| 25 | - interrupts: Must contain an interrupt-specifier for the SCIx interrupt. | ||
| 26 | |||
| 27 | - clocks: Must contain a phandle and clock-specifier pair for each entry | ||
| 28 | in clock-names. | ||
| 29 | - clock-names: Must contain "sci_ick" for the SCIx UART interface clock. | ||
| 30 | |||
| 31 | Note: Each enabled SCIx UART should have an alias correctly numbered in the | ||
| 32 | "aliases" node. | ||
| 33 | |||
| 34 | Example: | ||
| 35 | aliases { | ||
| 36 | serial0 = &scifa0; | ||
| 37 | }; | ||
| 38 | |||
| 39 | scifa0: serial@e6c40000 { | ||
| 40 | compatible = "renesas,scifa-r8a7790", "renesas,scifa-generic"; | ||
| 41 | reg = <0 0xe6c40000 0 64>; | ||
| 42 | interrupt-parent = <&gic>; | ||
| 43 | interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>; | ||
| 44 | clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>; | ||
| 45 | clock-names = "sci_ick"; | ||
| 46 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/vt8500-uart.txt b/Documentation/devicetree/bindings/serial/vt8500-uart.txt new file mode 100644 index 000000000000..795c393d09c4 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/vt8500-uart.txt | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | * VIA VT8500 and WonderMedia WM8xxx UART Controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "via,vt8500-uart" | ||
| 5 | |||
| 6 | - reg: base physical address of the controller and length of memory mapped | ||
| 7 | region. | ||
| 8 | |||
| 9 | - interrupts: hardware interrupt number | ||
| 10 | |||
| 11 | - clocks: shall be the input parent clock phandle for the clock. This should | ||
| 12 | be the 24Mhz reference clock. | ||
| 13 | |||
| 14 | Aliases may be defined to ensure the correct ordering of the uarts. | ||
| 15 | |||
| 16 | Example: | ||
| 17 | aliases { | ||
| 18 | serial0 = &uart0; | ||
| 19 | }; | ||
| 20 | |||
| 21 | uart0: serial@d8200000 { | ||
| 22 | compatible = "via,vt8500-uart"; | ||
| 23 | reg = <0xd8200000 0x1040>; | ||
| 24 | interrupts = <32>; | ||
| 25 | clocks = <&clkuart0>; | ||
| 26 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/adi,axi-i2s.txt b/Documentation/devicetree/bindings/sound/adi,axi-i2s.txt new file mode 100644 index 000000000000..5875ca459ed1 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/adi,axi-i2s.txt | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | ADI AXI-I2S controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : Must be "adi,axi-i2s-1.00.a" | ||
| 5 | - reg : Must contain I2S core's registers location and length | ||
| 6 | - clocks : Pairs of phandle and specifier referencing the controller's clocks. | ||
| 7 | The controller expects two clocks, the clock used for the AXI interface and | ||
| 8 | the clock used as the sampling rate reference clock sample. | ||
| 9 | - clock-names : "axi" for the clock to the AXI interface, "ref" for the sample | ||
| 10 | rate reference clock. | ||
| 11 | - dmas: Pairs of phandle and specifier for the DMA channels that are used by | ||
| 12 | the core. The core expects two dma channels, one for transmit and one for | ||
| 13 | receive. | ||
| 14 | - dma-names : "tx" for the transmit channel, "rx" for the receive channel. | ||
| 15 | |||
| 16 | For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties | ||
| 17 | please check: | ||
| 18 | * resource-names.txt | ||
| 19 | * clock/clock-bindings.txt | ||
| 20 | * dma/dma.txt | ||
| 21 | |||
| 22 | Example: | ||
| 23 | |||
| 24 | i2s: i2s@0x77600000 { | ||
| 25 | compatible = "adi,axi-i2s-1.00.a"; | ||
| 26 | reg = <0x77600000 0x1000>; | ||
| 27 | clocks = <&clk 15>, <&audio_clock>; | ||
| 28 | clock-names = "axi", "ref"; | ||
| 29 | dmas = <&ps7_dma 0>, <&ps7_dma 1>; | ||
| 30 | dma-names = "tx", "rx"; | ||
| 31 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt new file mode 100644 index 000000000000..46f344965313 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | ADI AXI-SPDIF controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : Must be "adi,axi-spdif-1.00.a" | ||
| 5 | - reg : Must contain SPDIF core's registers location and length | ||
| 6 | - clocks : Pairs of phandle and specifier referencing the controller's clocks. | ||
| 7 | The controller expects two clocks, the clock used for the AXI interface and | ||
| 8 | the clock used as the sampling rate reference clock sample. | ||
| 9 | - clock-names: "axi" for the clock to the AXI interface, "ref" for the sample | ||
| 10 | rate reference clock. | ||
| 11 | - dmas: Pairs of phandle and specifier for the DMA channel that is used by | ||
| 12 | the core. The core expects one dma channel for transmit. | ||
| 13 | - dma-names : Must be "tx" | ||
| 14 | |||
| 15 | For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties | ||
| 16 | please check: | ||
| 17 | * resource-names.txt | ||
| 18 | * clock/clock-bindings.txt | ||
| 19 | * dma/dma.txt | ||
| 20 | |||
| 21 | Example: | ||
| 22 | |||
| 23 | spdif: spdif@0x77400000 { | ||
| 24 | compatible = "adi,axi-spdif-tx-1.00.a"; | ||
| 25 | reg = <0x77600000 0x1000>; | ||
| 26 | clocks = <&clk 15>, <&audio_clock>; | ||
| 27 | clock-names = "axi", "ref"; | ||
| 28 | dmas = <&ps7_dma 0>; | ||
| 29 | dma-names = "tx"; | ||
| 30 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/bcm2835-i2s.txt b/Documentation/devicetree/bindings/sound/bcm2835-i2s.txt new file mode 100644 index 000000000000..65783de0aedf --- /dev/null +++ b/Documentation/devicetree/bindings/sound/bcm2835-i2s.txt | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | * Broadcom BCM2835 SoC I2S/PCM module | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: "brcm,bcm2835-i2s" | ||
| 5 | - reg: A list of base address and size entries: | ||
| 6 | * The first entry should cover the PCM registers | ||
| 7 | * The second entry should cover the PCM clock registers | ||
| 8 | - dmas: List of DMA controller phandle and DMA request line ordered pairs. | ||
| 9 | - dma-names: Identifier string for each DMA request line in the dmas property. | ||
| 10 | These strings correspond 1:1 with the ordered pairs in dmas. | ||
| 11 | |||
| 12 | One of the DMA channels will be responsible for transmission (should be | ||
| 13 | named "tx") and one for reception (should be named "rx"). | ||
| 14 | |||
| 15 | Example: | ||
| 16 | |||
| 17 | bcm2835_i2s: i2s@7e203000 { | ||
| 18 | compatible = "brcm,bcm2835-i2s"; | ||
| 19 | reg = <0x7e203000 0x20>, | ||
| 20 | <0x7e101098 0x02>; | ||
| 21 | |||
| 22 | dmas = <&dma 2>, | ||
| 23 | <&dma 3>; | ||
| 24 | dma-names = "tx", "rx"; | ||
| 25 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/cs42l52.txt b/Documentation/devicetree/bindings/sound/cs42l52.txt new file mode 100644 index 000000000000..bc03c9312a19 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/cs42l52.txt | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | CS42L52 audio CODEC | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - compatible : "cirrus,cs42l52" | ||
| 6 | |||
| 7 | - reg : the I2C address of the device for I2C | ||
| 8 | |||
| 9 | Optional properties: | ||
| 10 | |||
| 11 | - cirrus,reset-gpio : GPIO controller's phandle and the number | ||
| 12 | of the GPIO used to reset the codec. | ||
| 13 | |||
| 14 | - cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency. | ||
| 15 | Allowable values of 0x00 through 0x0F. These are raw values written to the | ||
| 16 | register, not the actual frequency. The frequency is determined by the following. | ||
| 17 | Frequency = (64xFs)/(N+2) | ||
| 18 | N = chgfreq_val | ||
| 19 | Fs = Sample Rate (variable) | ||
| 20 | |||
| 21 | - cirrus,mica-differential-cfg : boolean, If present, then the MICA input is configured | ||
| 22 | as a differential input. If not present then the MICA input is configured as | ||
| 23 | Single-ended input. Single-ended mode allows for MIC1 or MIC2 muxing for input. | ||
| 24 | |||
| 25 | - cirrus,micb-differential-cfg : boolean, If present, then the MICB input is configured | ||
| 26 | as a differential input. If not present then the MICB input is configured as | ||
| 27 | Single-ended input. Single-ended mode allows for MIC1 or MIC2 muxing for input. | ||
| 28 | |||
| 29 | - cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin | ||
| 30 | 0 = 0.5 x VA | ||
| 31 | 1 = 0.6 x VA | ||
| 32 | 2 = 0.7 x VA | ||
| 33 | 3 = 0.8 x VA | ||
| 34 | 4 = 0.83 x VA | ||
| 35 | 5 = 0.91 x VA | ||
| 36 | |||
| 37 | Example: | ||
| 38 | |||
| 39 | codec: codec@4a { | ||
| 40 | compatible = "cirrus,cs42l52"; | ||
| 41 | reg = <0x4a>; | ||
| 42 | reset-gpio = <&gpio 10 0>; | ||
| 43 | cirrus,chgfreq-divisor = <0x05>; | ||
| 44 | cirrus.mica-differential-cfg; | ||
| 45 | cirrus,micbias-lvl = <5>; | ||
| 46 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt index ed785b3f67be..569b26c4a81e 100644 --- a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt +++ b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt | |||
| @@ -4,7 +4,8 @@ Required properties: | |||
| 4 | - compatible : | 4 | - compatible : |
| 5 | "ti,dm646x-mcasp-audio" : for DM646x platforms | 5 | "ti,dm646x-mcasp-audio" : for DM646x platforms |
| 6 | "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms | 6 | "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms |
| 7 | "ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, TI81xx) | 7 | "ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, AM43xx, TI81xx) |
| 8 | "ti,dra7-mcasp-audio" : for DRA7xx platforms | ||
| 8 | 9 | ||
| 9 | - reg : Should contain reg specifiers for the entries in the reg-names property. | 10 | - reg : Should contain reg specifiers for the entries in the reg-names property. |
| 10 | - reg-names : Should contain: | 11 | - reg-names : Should contain: |
| @@ -36,7 +37,8 @@ Optional properties: | |||
| 36 | - pinctrl-0: Should specify pin control group used for this controller. | 37 | - pinctrl-0: Should specify pin control group used for this controller. |
| 37 | - pinctrl-names: Should contain only one value - "default", for more details | 38 | - pinctrl-names: Should contain only one value - "default", for more details |
| 38 | please refer to pinctrl-bindings.txt | 39 | please refer to pinctrl-bindings.txt |
| 39 | 40 | - fck_parent : Should contain a valid clock name which will be used as parent | |
| 41 | for the McASP fck | ||
| 40 | 42 | ||
| 41 | Example: | 43 | Example: |
| 42 | 44 | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt new file mode 100644 index 000000000000..d7b99fa637b5 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | Freescale Enhanced Serial Audio Interface (ESAI) Controller | ||
| 2 | |||
| 3 | The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port | ||
| 4 | for serial communication with a variety of serial devices, including industry | ||
| 5 | standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and | ||
| 6 | other DSPs. It has up to six transmitters and four receivers. | ||
| 7 | |||
| 8 | Required properties: | ||
| 9 | |||
| 10 | - compatible : Compatible list, must contain "fsl,imx35-esai". | ||
| 11 | |||
| 12 | - reg : Offset and length of the register set for the device. | ||
| 13 | |||
| 14 | - interrupts : Contains the spdif interrupt. | ||
| 15 | |||
| 16 | - dmas : Generic dma devicetree binding as described in | ||
| 17 | Documentation/devicetree/bindings/dma/dma.txt. | ||
| 18 | |||
| 19 | - dma-names : Two dmas have to be defined, "tx" and "rx". | ||
| 20 | |||
| 21 | - clocks: Contains an entry for each entry in clock-names. | ||
| 22 | |||
| 23 | - clock-names : Includes the following entries: | ||
| 24 | "core" The core clock used to access registers | ||
| 25 | "extal" The esai baud clock for esai controller used to derive | ||
| 26 | HCK, SCK and FS. | ||
| 27 | "fsys" The system clock derived from ahb clock used to derive | ||
| 28 | HCK, SCK and FS. | ||
| 29 | |||
| 30 | - fsl,fifo-depth: The number of elements in the transmit and receive FIFOs. | ||
| 31 | This number is the maximum allowed value for TFCR[TFWM] or RFCR[RFWM]. | ||
| 32 | |||
| 33 | - fsl,esai-synchronous: This is a boolean property. If present, indicating | ||
| 34 | that ESAI would work in the synchronous mode, which means all the settings | ||
| 35 | for Receiving would be duplicated from Transmition related registers. | ||
| 36 | |||
| 37 | Example: | ||
| 38 | |||
| 39 | esai: esai@02024000 { | ||
| 40 | compatible = "fsl,imx35-esai"; | ||
| 41 | reg = <0x02024000 0x4000>; | ||
| 42 | interrupts = <0 51 0x04>; | ||
| 43 | clocks = <&clks 208>, <&clks 118>, <&clks 208>; | ||
| 44 | clock-names = "core", "extal", "fsys"; | ||
| 45 | dmas = <&sdma 23 21 0>, <&sdma 24 21 0>; | ||
| 46 | dma-names = "rx", "tx"; | ||
| 47 | fsl,fifo-depth = <128>; | ||
| 48 | fsl,esai-synchronous; | ||
| 49 | status = "disabled"; | ||
| 50 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,ssi.txt b/Documentation/devicetree/bindings/sound/fsl,ssi.txt index 4303b6ab6208..b93e9a91e30e 100644 --- a/Documentation/devicetree/bindings/sound/fsl,ssi.txt +++ b/Documentation/devicetree/bindings/sound/fsl,ssi.txt | |||
| @@ -4,7 +4,12 @@ The SSI is a serial device that communicates with audio codecs. It can | |||
| 4 | be programmed in AC97, I2S, left-justified, or right-justified modes. | 4 | be programmed in AC97, I2S, left-justified, or right-justified modes. |
| 5 | 5 | ||
| 6 | Required properties: | 6 | Required properties: |
| 7 | - compatible: Compatible list, contains "fsl,ssi". | 7 | - compatible: Compatible list, should contain one of the following |
| 8 | compatibles: | ||
| 9 | fsl,mpc8610-ssi | ||
| 10 | fsl,imx51-ssi | ||
| 11 | fsl,imx35-ssi | ||
| 12 | fsl,imx21-ssi | ||
| 8 | - cell-index: The SSI, <0> = SSI1, <1> = SSI2, and so on. | 13 | - cell-index: The SSI, <0> = SSI1, <1> = SSI2, and so on. |
| 9 | - reg: Offset and length of the register set for the device. | 14 | - reg: Offset and length of the register set for the device. |
| 10 | - interrupts: <a b> where a is the interrupt number and b is a | 15 | - interrupts: <a b> where a is the interrupt number and b is a |
diff --git a/Documentation/devicetree/bindings/sound/fsl-sai.txt b/Documentation/devicetree/bindings/sound/fsl-sai.txt new file mode 100644 index 000000000000..98611a6761c0 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/fsl-sai.txt | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | Freescale Synchronous Audio Interface (SAI). | ||
| 2 | |||
| 3 | The SAI is based on I2S module that used communicating with audio codecs, | ||
| 4 | which provides a synchronous audio interface that supports fullduplex | ||
| 5 | serial interfaces with frame synchronization such as I2S, AC97, TDM, and | ||
| 6 | codec/DSP interfaces. | ||
| 7 | |||
| 8 | |||
| 9 | Required properties: | ||
| 10 | - compatible: Compatible list, contains "fsl,vf610-sai". | ||
| 11 | - reg: Offset and length of the register set for the device. | ||
| 12 | - clocks: Must contain an entry for each entry in clock-names. | ||
| 13 | - clock-names : Must include the "sai" entry. | ||
| 14 | - dmas : Generic dma devicetree binding as described in | ||
| 15 | Documentation/devicetree/bindings/dma/dma.txt. | ||
| 16 | - dma-names : Two dmas have to be defined, "tx" and "rx". | ||
| 17 | - pinctrl-names: Must contain a "default" entry. | ||
| 18 | - pinctrl-NNN: One property must exist for each entry in pinctrl-names. | ||
| 19 | See ../pinctrl/pinctrl-bindings.txt for details of the property values. | ||
| 20 | - big-endian-regs: If this property is absent, the little endian mode will | ||
| 21 | be in use as default, or the big endian mode will be in use for all the | ||
| 22 | device registers. | ||
| 23 | - big-endian-data: If this property is absent, the little endian mode will | ||
| 24 | be in use as default, or the big endian mode will be in use for all the | ||
| 25 | fifo data. | ||
| 26 | |||
| 27 | Example: | ||
| 28 | sai2: sai@40031000 { | ||
| 29 | compatible = "fsl,vf610-sai"; | ||
| 30 | reg = <0x40031000 0x1000>; | ||
| 31 | pinctrl-names = "default"; | ||
| 32 | pinctrl-0 = <&pinctrl_sai2_1>; | ||
| 33 | clocks = <&clks VF610_CLK_SAI2>; | ||
| 34 | clock-names = "sai"; | ||
| 35 | dma-names = "tx", "rx"; | ||
| 36 | dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>, | ||
| 37 | <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>; | ||
| 38 | big-endian-regs; | ||
| 39 | big-endian-data; | ||
| 40 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/hdmi.txt b/Documentation/devicetree/bindings/sound/hdmi.txt new file mode 100644 index 000000000000..31af7bca3099 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/hdmi.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | Device-Tree bindings for dummy HDMI codec | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "linux,hdmi-audio". | ||
| 5 | |||
| 6 | CODEC output pins: | ||
| 7 | * TX | ||
| 8 | |||
| 9 | CODEC input pins: | ||
| 10 | * RX | ||
| 11 | |||
| 12 | Example node: | ||
| 13 | |||
| 14 | hdmi_audio: hdmi_audio@0 { | ||
| 15 | compatible = "linux,hdmi-audio"; | ||
| 16 | status = "okay"; | ||
| 17 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/max98090.txt b/Documentation/devicetree/bindings/sound/max98090.txt new file mode 100644 index 000000000000..e4c8b36dcf89 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/max98090.txt | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | MAX98090 audio CODEC | ||
| 2 | |||
| 3 | This device supports I2C only. | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | |||
| 7 | - compatible : "maxim,max98090". | ||
| 8 | |||
| 9 | - reg : The I2C address of the device. | ||
| 10 | |||
| 11 | - interrupts : The CODEC's interrupt output. | ||
| 12 | |||
| 13 | Pins on the device (for linking into audio routes): | ||
| 14 | |||
| 15 | * MIC1 | ||
| 16 | * MIC2 | ||
| 17 | * DMICL | ||
| 18 | * DMICR | ||
| 19 | * IN1 | ||
| 20 | * IN2 | ||
| 21 | * IN3 | ||
| 22 | * IN4 | ||
| 23 | * IN5 | ||
| 24 | * IN6 | ||
| 25 | * IN12 | ||
| 26 | * IN34 | ||
| 27 | * IN56 | ||
| 28 | * HPL | ||
| 29 | * HPR | ||
| 30 | * SPKL | ||
| 31 | * SPKR | ||
| 32 | * RCVL | ||
| 33 | * RCVR | ||
| 34 | * MICBIAS | ||
| 35 | |||
| 36 | Example: | ||
| 37 | |||
| 38 | audio-codec@10 { | ||
| 39 | compatible = "maxim,max98090"; | ||
| 40 | reg = <0x10>; | ||
| 41 | interrupt-parent = <&gpio>; | ||
| 42 | interrupts = <TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>; | ||
| 43 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt index 8b8903ef0800..57f40f93453e 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt | |||
| @@ -3,10 +3,11 @@ NVIDIA Tegra audio complex | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : "nvidia,tegra-audio-alc5632" | 4 | - compatible : "nvidia,tegra-audio-alc5632" |
| 5 | - clocks : Must contain an entry for each entry in clock-names. | 5 | - clocks : Must contain an entry for each entry in clock-names. |
| 6 | See ../clocks/clock-bindings.txt for details. | ||
| 6 | - clock-names : Must include the following entries: | 7 | - clock-names : Must include the following entries: |
| 7 | "pll_a" (The Tegra clock of that name), | 8 | - pll_a |
| 8 | "pll_a_out0" (The Tegra clock of that name), | 9 | - pll_a_out0 |
| 9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | 10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) |
| 10 | - nvidia,model : The user-visible name of this sound complex. | 11 | - nvidia,model : The user-visible name of this sound complex. |
| 11 | - nvidia,audio-routing : A list of the connections between audio components. | 12 | - nvidia,audio-routing : A list of the connections between audio components. |
| 12 | Each entry is a pair of strings, the first being the connection's sink, | 13 | Each entry is a pair of strings, the first being the connection's sink, |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt new file mode 100644 index 000000000000..9c7c55c71370 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | NVIDIA Tegra audio complex, with MAX98090 CODEC | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : "nvidia,tegra-audio-max98090" | ||
| 5 | - clocks : Must contain an entry for each entry in clock-names. | ||
| 6 | See ../clocks/clock-bindings.txt for details. | ||
| 7 | - clock-names : Must include the following entries: | ||
| 8 | - pll_a | ||
| 9 | - pll_a_out0 | ||
| 10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
| 11 | - nvidia,model : The user-visible name of this sound complex. | ||
| 12 | - nvidia,audio-routing : A list of the connections between audio components. | ||
| 13 | Each entry is a pair of strings, the first being the connection's sink, | ||
| 14 | the second being the connection's source. Valid names for sources and | ||
| 15 | sinks are the MAX98090's pins (as documented in its binding), and the jacks | ||
| 16 | on the board: | ||
| 17 | |||
| 18 | * Headphones | ||
| 19 | * Speakers | ||
| 20 | * Mic Jack | ||
| 21 | |||
| 22 | - nvidia,i2s-controller : The phandle of the Tegra I2S controller that's | ||
| 23 | connected to the CODEC. | ||
| 24 | - nvidia,audio-codec : The phandle of the MAX98090 audio codec. | ||
| 25 | |||
| 26 | Optional properties: | ||
| 27 | - nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in | ||
| 28 | |||
| 29 | Example: | ||
| 30 | |||
| 31 | sound { | ||
| 32 | compatible = "nvidia,tegra-audio-max98090-venice2", | ||
| 33 | "nvidia,tegra-audio-max98090"; | ||
| 34 | nvidia,model = "NVIDIA Tegra Venice2"; | ||
| 35 | |||
| 36 | nvidia,audio-routing = | ||
| 37 | "Headphones", "HPR", | ||
| 38 | "Headphones", "HPL", | ||
| 39 | "Speakers", "SPKR", | ||
| 40 | "Speakers", "SPKL", | ||
| 41 | "Mic Jack", "MICBIAS", | ||
| 42 | "IN34", "Mic Jack"; | ||
| 43 | |||
| 44 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
| 45 | nvidia,audio-codec = <&acodec>; | ||
| 46 | |||
| 47 | clocks = <&tegra_car TEGRA124_CLK_PLL_A>, | ||
| 48 | <&tegra_car TEGRA124_CLK_PLL_A_OUT0>, | ||
| 49 | <&tegra_car TEGRA124_CLK_EXTERN1>; | ||
| 50 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
| 51 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt index dc6224994d69..7788808dcd0b 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt | |||
| @@ -3,10 +3,11 @@ NVIDIA Tegra audio complex, with RT5640 CODEC | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : "nvidia,tegra-audio-rt5640" | 4 | - compatible : "nvidia,tegra-audio-rt5640" |
| 5 | - clocks : Must contain an entry for each entry in clock-names. | 5 | - clocks : Must contain an entry for each entry in clock-names. |
| 6 | See ../clocks/clock-bindings.txt for details. | ||
| 6 | - clock-names : Must include the following entries: | 7 | - clock-names : Must include the following entries: |
| 7 | "pll_a" (The Tegra clock of that name), | 8 | - pll_a |
| 8 | "pll_a_out0" (The Tegra clock of that name), | 9 | - pll_a_out0 |
| 9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | 10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) |
| 10 | - nvidia,model : The user-visible name of this sound complex. | 11 | - nvidia,model : The user-visible name of this sound complex. |
| 11 | - nvidia,audio-routing : A list of the connections between audio components. | 12 | - nvidia,audio-routing : A list of the connections between audio components. |
| 12 | Each entry is a pair of strings, the first being the connection's sink, | 13 | Each entry is a pair of strings, the first being the connection's sink, |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt index aab6ce0ad2fc..96f6a57dd6b4 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt | |||
| @@ -3,10 +3,11 @@ NVIDIA Tegra audio complex | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : "nvidia,tegra-audio-wm8753" | 4 | - compatible : "nvidia,tegra-audio-wm8753" |
| 5 | - clocks : Must contain an entry for each entry in clock-names. | 5 | - clocks : Must contain an entry for each entry in clock-names. |
| 6 | See ../clocks/clock-bindings.txt for details. | ||
| 6 | - clock-names : Must include the following entries: | 7 | - clock-names : Must include the following entries: |
| 7 | "pll_a" (The Tegra clock of that name), | 8 | - pll_a |
| 8 | "pll_a_out0" (The Tegra clock of that name), | 9 | - pll_a_out0 |
| 9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | 10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) |
| 10 | - nvidia,model : The user-visible name of this sound complex. | 11 | - nvidia,model : The user-visible name of this sound complex. |
| 11 | - nvidia,audio-routing : A list of the connections between audio components. | 12 | - nvidia,audio-routing : A list of the connections between audio components. |
| 12 | Each entry is a pair of strings, the first being the connection's sink, | 13 | Each entry is a pair of strings, the first being the connection's sink, |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt index 4b44dfb6ca0d..b795d282818d 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt | |||
| @@ -3,10 +3,11 @@ NVIDIA Tegra audio complex | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : "nvidia,tegra-audio-wm8903" | 4 | - compatible : "nvidia,tegra-audio-wm8903" |
| 5 | - clocks : Must contain an entry for each entry in clock-names. | 5 | - clocks : Must contain an entry for each entry in clock-names. |
| 6 | See ../clocks/clock-bindings.txt for details. | ||
| 6 | - clock-names : Must include the following entries: | 7 | - clock-names : Must include the following entries: |
| 7 | "pll_a" (The Tegra clock of that name), | 8 | - pll_a |
| 8 | "pll_a_out0" (The Tegra clock of that name), | 9 | - pll_a_out0 |
| 9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | 10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) |
| 10 | - nvidia,model : The user-visible name of this sound complex. | 11 | - nvidia,model : The user-visible name of this sound complex. |
| 11 | - nvidia,audio-routing : A list of the connections between audio components. | 12 | - nvidia,audio-routing : A list of the connections between audio components. |
| 12 | Each entry is a pair of strings, the first being the connection's sink, | 13 | Each entry is a pair of strings, the first being the connection's sink, |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt index ad589b163639..436f6cd9d07c 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt | |||
| @@ -3,10 +3,11 @@ NVIDIA Tegra audio complex | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : "nvidia,tegra-audio-wm9712" | 4 | - compatible : "nvidia,tegra-audio-wm9712" |
| 5 | - clocks : Must contain an entry for each entry in clock-names. | 5 | - clocks : Must contain an entry for each entry in clock-names. |
| 6 | See ../clocks/clock-bindings.txt for details. | ||
| 6 | - clock-names : Must include the following entries: | 7 | - clock-names : Must include the following entries: |
| 7 | "pll_a" (The Tegra clock of that name), | 8 | - pll_a |
| 8 | "pll_a_out0" (The Tegra clock of that name), | 9 | - pll_a_out0 |
| 9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | 10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) |
| 10 | - nvidia,model : The user-visible name of this sound complex. | 11 | - nvidia,model : The user-visible name of this sound complex. |
| 11 | - nvidia,audio-routing : A list of the connections between audio components. | 12 | - nvidia,audio-routing : A list of the connections between audio components. |
| 12 | Each entry is a pair of strings, the first being the connection's sink, | 13 | Each entry is a pair of strings, the first being the connection's sink, |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt index c1454979c1ef..eaf00102d92c 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt | |||
| @@ -4,19 +4,33 @@ Required properties: | |||
| 4 | - compatible : "nvidia,tegra20-ac97" | 4 | - compatible : "nvidia,tegra20-ac97" |
| 5 | - reg : Should contain AC97 controller registers location and length | 5 | - reg : Should contain AC97 controller registers location and length |
| 6 | - interrupts : Should contain AC97 interrupt | 6 | - interrupts : Should contain AC97 interrupt |
| 7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | 7 | - resets : Must contain an entry for each entry in reset-names. |
| 8 | request selector for the AC97 controller | 8 | See ../reset/reset.txt for details. |
| 9 | - reset-names : Must include the following entries: | ||
| 10 | - ac97 | ||
| 11 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 12 | See ../dma/dma.txt for details. | ||
| 13 | - dma-names : Must include the following entries: | ||
| 14 | - rx | ||
| 15 | - tx | ||
| 16 | - clocks : Must contain one entry, for the module clock. | ||
| 17 | See ../clocks/clock-bindings.txt for details. | ||
| 9 | - nvidia,codec-reset-gpio : The Tegra GPIO controller's phandle and the number | 18 | - nvidia,codec-reset-gpio : The Tegra GPIO controller's phandle and the number |
| 10 | of the GPIO used to reset the external AC97 codec | 19 | of the GPIO used to reset the external AC97 codec |
| 11 | - nvidia,codec-sync-gpio : The Tegra GPIO controller's phandle and the number | 20 | - nvidia,codec-sync-gpio : The Tegra GPIO controller's phandle and the number |
| 12 | of the GPIO corresponding with the AC97 DAP _FS line | 21 | of the GPIO corresponding with the AC97 DAP _FS line |
| 22 | |||
| 13 | Example: | 23 | Example: |
| 14 | 24 | ||
| 15 | ac97@70002000 { | 25 | ac97@70002000 { |
| 16 | compatible = "nvidia,tegra20-ac97"; | 26 | compatible = "nvidia,tegra20-ac97"; |
| 17 | reg = <0x70002000 0x200>; | 27 | reg = <0x70002000 0x200>; |
| 18 | interrupts = <0 81 0x04>; | 28 | interrupts = <0 81 0x04>; |
| 19 | nvidia,dma-request-selector = <&apbdma 12>; | ||
| 20 | nvidia,codec-reset-gpio = <&gpio 170 0>; | 29 | nvidia,codec-reset-gpio = <&gpio 170 0>; |
| 21 | nvidia,codec-sync-gpio = <&gpio 120 0>; | 30 | nvidia,codec-sync-gpio = <&gpio 120 0>; |
| 31 | clocks = <&tegra_car 3>; | ||
| 32 | resets = <&tegra_car 3>; | ||
| 33 | reset-names = "ac97"; | ||
| 34 | dmas = <&apbdma 12>, <&apbdma 12>; | ||
| 35 | dma-names = "rx", "tx"; | ||
| 22 | }; | 36 | }; |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt index 0df2b5c816e3..dc30c6bfbe95 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt | |||
| @@ -4,8 +4,17 @@ Required properties: | |||
| 4 | - compatible : "nvidia,tegra20-i2s" | 4 | - compatible : "nvidia,tegra20-i2s" |
| 5 | - reg : Should contain I2S registers location and length | 5 | - reg : Should contain I2S registers location and length |
| 6 | - interrupts : Should contain I2S interrupt | 6 | - interrupts : Should contain I2S interrupt |
| 7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | 7 | - resets : Must contain an entry for each entry in reset-names. |
| 8 | request selector for this I2S controller | 8 | See ../reset/reset.txt for details. |
| 9 | - reset-names : Must include the following entries: | ||
| 10 | - i2s | ||
| 11 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 12 | See ../dma/dma.txt for details. | ||
| 13 | - dma-names : Must include the following entries: | ||
| 14 | - rx | ||
| 15 | - tx | ||
| 16 | - clocks : Must contain one entry, for the module clock. | ||
| 17 | See ../clocks/clock-bindings.txt for details. | ||
| 9 | 18 | ||
| 10 | Example: | 19 | Example: |
| 11 | 20 | ||
| @@ -13,5 +22,9 @@ i2s@70002800 { | |||
| 13 | compatible = "nvidia,tegra20-i2s"; | 22 | compatible = "nvidia,tegra20-i2s"; |
| 14 | reg = <0x70002800 0x200>; | 23 | reg = <0x70002800 0x200>; |
| 15 | interrupts = < 45 >; | 24 | interrupts = < 45 >; |
| 16 | nvidia,dma-request-selector = < &apbdma 2 >; | 25 | clocks = <&tegra_car 11>; |
| 26 | resets = <&tegra_car 11>; | ||
| 27 | reset-names = "i2s"; | ||
| 28 | dmas = <&apbdma 21>, <&apbdma 21>; | ||
| 29 | dma-names = "rx", "tx"; | ||
| 17 | }; | 30 | }; |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra30-ahub.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra30-ahub.txt index 0e5c12c66523..946e2ac46091 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra30-ahub.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra30-ahub.txt | |||
| @@ -7,18 +7,48 @@ Required properties: | |||
| 7 | - Tegra30 requires 2 entries, for the APBIF and AHUB/AUDIO register blocks. | 7 | - Tegra30 requires 2 entries, for the APBIF and AHUB/AUDIO register blocks. |
| 8 | - Tegra114 requires an additional entry, for the APBIF2 register block. | 8 | - Tegra114 requires an additional entry, for the APBIF2 register block. |
| 9 | - interrupts : Should contain AHUB interrupt | 9 | - interrupts : Should contain AHUB interrupt |
| 10 | - nvidia,dma-request-selector : A list of the DMA channel specifiers. Each | 10 | - clocks : Must contain an entry for each entry in clock-names. |
| 11 | entry contains the Tegra DMA controller's phandle and request selector. | 11 | See ../clocks/clock-bindings.txt for details. |
| 12 | If a single entry is present, the request selectors for the channels are | ||
| 13 | assumed to be contiguous, and increment from this value. | ||
| 14 | If multiple values are given, one value must be given per channel. | ||
| 15 | - clocks : Must contain an entry for each required entry in clock-names. | ||
| 16 | - clock-names : Must include the following entries: | 12 | - clock-names : Must include the following entries: |
| 17 | - Tegra30: Requires d_audio, apbif, i2s0, i2s1, i2s2, i2s3, i2s4, dam0, | 13 | - d_audio |
| 18 | dam1, dam2, spdif_in. | 14 | - apbif |
| 19 | - Tegra114: Additionally requires amx, adx. | 15 | - resets : Must contain an entry for each entry in reset-names. |
| 16 | See ../reset/reset.txt for details. | ||
| 17 | - reset-names : Must include the following entries: | ||
| 18 | Tegra30 and later: | ||
| 19 | - d_audio | ||
| 20 | - apbif | ||
| 21 | - i2s0 | ||
| 22 | - i2s1 | ||
| 23 | - i2s2 | ||
| 24 | - i2s3 | ||
| 25 | - i2s4 | ||
| 26 | - dam0 | ||
| 27 | - dam1 | ||
| 28 | - dam2 | ||
| 29 | - spdif | ||
| 30 | Tegra114 and later additionally require: | ||
| 31 | - amx | ||
| 32 | - adx | ||
| 33 | Tegra124 and later additionally require: | ||
| 34 | - amx1 | ||
| 35 | - adx1 | ||
| 36 | - afc0 | ||
| 37 | - afc1 | ||
| 38 | - afc2 | ||
| 39 | - afc3 | ||
| 40 | - afc4 | ||
| 41 | - afc5 | ||
| 20 | - ranges : The bus address mapping for the configlink register bus. | 42 | - ranges : The bus address mapping for the configlink register bus. |
| 21 | Can be empty since the mapping is 1:1. | 43 | Can be empty since the mapping is 1:1. |
| 44 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 45 | See ../dma/dma.txt for details. | ||
| 46 | - dma-names : Must include the following entries: | ||
| 47 | - rx0 .. rx<n> | ||
| 48 | - tx0 .. tx<n> | ||
| 49 | ... where n is: | ||
| 50 | Tegra30: 3 | ||
| 51 | Tegra114, Tegra124: 9 | ||
| 22 | - #address-cells : For the configlink bus. Should be <1>; | 52 | - #address-cells : For the configlink bus. Should be <1>; |
| 23 | - #size-cells : For the configlink bus. Should be <1>. | 53 | - #size-cells : For the configlink bus. Should be <1>. |
| 24 | 54 | ||
| @@ -35,13 +65,20 @@ ahub@70080000 { | |||
| 35 | reg = <0x70080000 0x200 0x70080200 0x100>; | 65 | reg = <0x70080000 0x200 0x70080200 0x100>; |
| 36 | interrupts = < 0 103 0x04 >; | 66 | interrupts = < 0 103 0x04 >; |
| 37 | nvidia,dma-request-selector = <&apbdma 1>; | 67 | nvidia,dma-request-selector = <&apbdma 1>; |
| 38 | clocks = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>, | 68 | clocks = <&tegra_car 106>, <&tegra_car 107>; |
| 69 | clock-names = "d_audio", "apbif"; | ||
| 70 | resets = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>, | ||
| 39 | <&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>, | 71 | <&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>, |
| 40 | <&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>, | 72 | <&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>, |
| 41 | <&tegra_car 110>, <&tegra_car 162>; | 73 | <&tegra_car 110>, <&tegra_car 10>; |
| 42 | clock-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2", | 74 | reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2", |
| 43 | "i2s3", "i2s4", "dam0", "dam1", "dam2", | 75 | "i2s3", "i2s4", "dam0", "dam1", "dam2", |
| 44 | "spdif_in"; | 76 | "spdif"; |
| 77 | dmas = <&apbdma 1>, <&apbdma 1>; | ||
| 78 | <&apbdma 2>, <&apbdma 2>; | ||
| 79 | <&apbdma 3>, <&apbdma 3>; | ||
| 80 | <&apbdma 4>, <&apbdma 4>; | ||
| 81 | dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2", "rx3", "tx3"; | ||
| 45 | ranges; | 82 | ranges; |
| 46 | #address-cells = <1>; | 83 | #address-cells = <1>; |
| 47 | #size-cells = <1>; | 84 | #size-cells = <1>; |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt index dfa6c037124a..0c113ffe3814 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt | |||
| @@ -3,13 +3,22 @@ NVIDIA Tegra30 I2S controller | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : "nvidia,tegra30-i2s" | 4 | - compatible : "nvidia,tegra30-i2s" |
| 5 | - reg : Should contain I2S registers location and length | 5 | - reg : Should contain I2S registers location and length |
| 6 | - clocks : Must contain one entry, for the module clock. | ||
| 7 | See ../clocks/clock-bindings.txt for details. | ||
| 8 | - resets : Must contain an entry for each entry in reset-names. | ||
| 9 | See ../reset/reset.txt for details. | ||
| 10 | - reset-names : Must include the following entries: | ||
| 11 | - i2s | ||
| 6 | - nvidia,ahub-cif-ids : The list of AHUB CIF IDs for this port, rx (playback) | 12 | - nvidia,ahub-cif-ids : The list of AHUB CIF IDs for this port, rx (playback) |
| 7 | first, tx (capture) second. See nvidia,tegra30-ahub.txt for values. | 13 | first, tx (capture) second. See nvidia,tegra30-ahub.txt for values. |
| 8 | 14 | ||
| 9 | Example: | 15 | Example: |
| 10 | 16 | ||
| 11 | i2s@70002800 { | 17 | i2s@70080300 { |
| 12 | compatible = "nvidia,tegra30-i2s"; | 18 | compatible = "nvidia,tegra30-i2s"; |
| 13 | reg = <0x70080300 0x100>; | 19 | reg = <0x70080300 0x100>; |
| 14 | nvidia,ahub-cif-ids = <4 4>; | 20 | nvidia,ahub-cif-ids = <4 4>; |
| 21 | clocks = <&tegra_car 11>; | ||
| 22 | resets = <&tegra_car 11>; | ||
| 23 | reset-names = "i2s"; | ||
| 15 | }; | 24 | }; |
diff --git a/Documentation/devicetree/bindings/sound/simple-card.txt b/Documentation/devicetree/bindings/sound/simple-card.txt new file mode 100644 index 000000000000..19c84df5fffa --- /dev/null +++ b/Documentation/devicetree/bindings/sound/simple-card.txt | |||
| @@ -0,0 +1,77 @@ | |||
| 1 | Simple-Card: | ||
| 2 | |||
| 3 | Simple-Card specifies audio DAI connection of SoC <-> codec. | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | |||
| 7 | - compatible : "simple-audio-card" | ||
| 8 | |||
| 9 | Optional properties: | ||
| 10 | |||
| 11 | - simple-audio-card,format : CPU/CODEC common audio format. | ||
| 12 | "i2s", "right_j", "left_j" , "dsp_a" | ||
| 13 | "dsp_b", "ac97", "pdm", "msb", "lsb" | ||
| 14 | - simple-audio-card,routing : A list of the connections between audio components. | ||
| 15 | Each entry is a pair of strings, the first being the | ||
| 16 | connection's sink, the second being the connection's | ||
| 17 | source. | ||
| 18 | |||
| 19 | Required subnodes: | ||
| 20 | |||
| 21 | - simple-audio-card,cpu : CPU sub-node | ||
| 22 | - simple-audio-card,codec : CODEC sub-node | ||
| 23 | |||
| 24 | Required CPU/CODEC subnodes properties: | ||
| 25 | |||
| 26 | - sound-dai : phandle and port of CPU/CODEC | ||
| 27 | |||
| 28 | Optional CPU/CODEC subnodes properties: | ||
| 29 | |||
| 30 | - format : CPU/CODEC specific audio format if needed. | ||
| 31 | see simple-audio-card,format | ||
| 32 | - frame-master : bool property. add this if subnode is frame master | ||
| 33 | - bitclock-master : bool property. add this if subnode is bitclock master | ||
| 34 | - bitclock-inversion : bool property. add this if subnode has clock inversion | ||
| 35 | - frame-inversion : bool property. add this if subnode has frame inversion | ||
| 36 | - clocks / system-clock-frequency : specify subnode's clock if needed. | ||
| 37 | it can be specified via "clocks" if system has | ||
| 38 | clock node (= common clock), or "system-clock-frequency" | ||
| 39 | (if system doens't support common clock) | ||
| 40 | |||
| 41 | Example: | ||
| 42 | |||
| 43 | sound { | ||
| 44 | compatible = "simple-audio-card"; | ||
| 45 | simple-audio-card,format = "left_j"; | ||
| 46 | simple-audio-card,routing = | ||
| 47 | "MIC_IN", "Mic Jack", | ||
| 48 | "Headphone Jack", "HP_OUT", | ||
| 49 | "Ext Spk", "LINE_OUT"; | ||
| 50 | |||
| 51 | simple-audio-card,cpu { | ||
| 52 | sound-dai = <&sh_fsi2 0>; | ||
| 53 | }; | ||
| 54 | |||
| 55 | simple-audio-card,codec { | ||
| 56 | sound-dai = <&ak4648>; | ||
| 57 | bitclock-master; | ||
| 58 | frame-master; | ||
| 59 | clocks = <&osc>; | ||
| 60 | }; | ||
| 61 | }; | ||
| 62 | |||
| 63 | &i2c0 { | ||
| 64 | ak4648: ak4648@12 { | ||
| 65 | #sound-dai-cells = <0>; | ||
| 66 | compatible = "asahi-kasei,ak4648"; | ||
| 67 | reg = <0x12>; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | |||
| 71 | sh_fsi2: sh_fsi2@ec230000 { | ||
| 72 | #sound-dai-cells = <1>; | ||
| 73 | compatible = "renesas,sh_fsi2"; | ||
| 74 | reg = <0xec230000 0x400>; | ||
| 75 | interrupt-parent = <&gic>; | ||
| 76 | interrupts = <0 146 0x4>; | ||
| 77 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt index 5e6040c2c2e9..9d8ea14db490 100644 --- a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt +++ b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt | |||
| @@ -6,6 +6,7 @@ Required properties: | |||
| 6 | 6 | ||
| 7 | - compatible - "string" - One of: | 7 | - compatible - "string" - One of: |
| 8 | "ti,tlv320aic3x" - Generic TLV320AIC3x device | 8 | "ti,tlv320aic3x" - Generic TLV320AIC3x device |
| 9 | "ti,tlv320aic32x4" - TLV320AIC32x4 | ||
| 9 | "ti,tlv320aic33" - TLV320AIC33 | 10 | "ti,tlv320aic33" - TLV320AIC33 |
| 10 | "ti,tlv320aic3007" - TLV320AIC3007 | 11 | "ti,tlv320aic3007" - TLV320AIC3007 |
| 11 | "ti,tlv320aic3106" - TLV320AIC3106 | 12 | "ti,tlv320aic3106" - TLV320AIC3106 |
diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt index 91ff771c7e77..7ea701e07dc2 100644 --- a/Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt +++ b/Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt | |||
| @@ -4,10 +4,19 @@ Required properties: | |||
| 4 | - compatible : should be "nvidia,tegra114-spi". | 4 | - compatible : should be "nvidia,tegra114-spi". |
| 5 | - reg: Should contain SPI registers location and length. | 5 | - reg: Should contain SPI registers location and length. |
| 6 | - interrupts: Should contain SPI interrupts. | 6 | - interrupts: Should contain SPI interrupts. |
| 7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | 7 | - clock-names : Must include the following entries: |
| 8 | request selector for this SPI controller. | 8 | - spi |
| 9 | - This is also require clock named "spi" as per binding document | 9 | - resets : Must contain an entry for each entry in reset-names. |
| 10 | Documentation/devicetree/bindings/clock/clock-bindings.txt | 10 | See ../reset/reset.txt for details. |
| 11 | - reset-names : Must include the following entries: | ||
| 12 | - spi | ||
| 13 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 14 | See ../dma/dma.txt for details. | ||
| 15 | - dma-names : Must include the following entries: | ||
| 16 | - rx | ||
| 17 | - tx | ||
| 18 | - clocks : Must contain an entry for each entry in clock-names. | ||
| 19 | See ../clocks/clock-bindings.txt for details. | ||
| 11 | 20 | ||
| 12 | Recommended properties: | 21 | Recommended properties: |
| 13 | - spi-max-frequency: Definition as per | 22 | - spi-max-frequency: Definition as per |
| @@ -18,9 +27,14 @@ spi@7000d600 { | |||
| 18 | compatible = "nvidia,tegra114-spi"; | 27 | compatible = "nvidia,tegra114-spi"; |
| 19 | reg = <0x7000d600 0x200>; | 28 | reg = <0x7000d600 0x200>; |
| 20 | interrupts = <0 82 0x04>; | 29 | interrupts = <0 82 0x04>; |
| 21 | nvidia,dma-request-selector = <&apbdma 16>; | ||
| 22 | spi-max-frequency = <25000000>; | 30 | spi-max-frequency = <25000000>; |
| 23 | #address-cells = <1>; | 31 | #address-cells = <1>; |
| 24 | #size-cells = <0>; | 32 | #size-cells = <0>; |
| 33 | clocks = <&tegra_car 44>; | ||
| 34 | clock-names = "spi"; | ||
| 35 | resets = <&tegra_car 44>; | ||
| 36 | reset-names = "spi"; | ||
| 37 | dmas = <&apbdma 16>, <&apbdma 16>; | ||
| 38 | dma-names = "rx", "tx"; | ||
| 25 | status = "disabled"; | 39 | status = "disabled"; |
| 26 | }; | 40 | }; |
diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt index 7b53da5cb75b..bdf08e6dec9b 100644 --- a/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt +++ b/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt | |||
| @@ -4,8 +4,17 @@ Required properties: | |||
| 4 | - compatible : should be "nvidia,tegra20-sflash". | 4 | - compatible : should be "nvidia,tegra20-sflash". |
| 5 | - reg: Should contain SFLASH registers location and length. | 5 | - reg: Should contain SFLASH registers location and length. |
| 6 | - interrupts: Should contain SFLASH interrupts. | 6 | - interrupts: Should contain SFLASH interrupts. |
| 7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | 7 | - clocks : Must contain one entry, for the module clock. |
| 8 | request selector for this SFLASH controller. | 8 | See ../clocks/clock-bindings.txt for details. |
| 9 | - resets : Must contain an entry for each entry in reset-names. | ||
| 10 | See ../reset/reset.txt for details. | ||
| 11 | - reset-names : Must include the following entries: | ||
| 12 | - spi | ||
| 13 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 14 | See ../dma/dma.txt for details. | ||
| 15 | - dma-names : Must include the following entries: | ||
| 16 | - rx | ||
| 17 | - tx | ||
| 9 | 18 | ||
| 10 | Recommended properties: | 19 | Recommended properties: |
| 11 | - spi-max-frequency: Definition as per | 20 | - spi-max-frequency: Definition as per |
| @@ -17,10 +26,13 @@ spi@7000c380 { | |||
| 17 | compatible = "nvidia,tegra20-sflash"; | 26 | compatible = "nvidia,tegra20-sflash"; |
| 18 | reg = <0x7000c380 0x80>; | 27 | reg = <0x7000c380 0x80>; |
| 19 | interrupts = <0 39 0x04>; | 28 | interrupts = <0 39 0x04>; |
| 20 | nvidia,dma-request-selector = <&apbdma 16>; | ||
| 21 | spi-max-frequency = <25000000>; | 29 | spi-max-frequency = <25000000>; |
| 22 | #address-cells = <1>; | 30 | #address-cells = <1>; |
| 23 | #size-cells = <0>; | 31 | #size-cells = <0>; |
| 32 | clocks = <&tegra_car 43>; | ||
| 33 | resets = <&tegra_car 43>; | ||
| 34 | reset-names = "spi"; | ||
| 35 | dmas = <&apbdma 11>, <&apbdma 11>; | ||
| 36 | dma-names = "rx", "tx"; | ||
| 24 | status = "disabled"; | 37 | status = "disabled"; |
| 25 | }; | 38 | }; |
| 26 | |||
diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt index eefe15e3d95e..5db9144a33c8 100644 --- a/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt +++ b/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt | |||
| @@ -4,8 +4,17 @@ Required properties: | |||
| 4 | - compatible : should be "nvidia,tegra20-slink", "nvidia,tegra30-slink". | 4 | - compatible : should be "nvidia,tegra20-slink", "nvidia,tegra30-slink". |
| 5 | - reg: Should contain SLINK registers location and length. | 5 | - reg: Should contain SLINK registers location and length. |
| 6 | - interrupts: Should contain SLINK interrupts. | 6 | - interrupts: Should contain SLINK interrupts. |
| 7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | 7 | - clocks : Must contain one entry, for the module clock. |
| 8 | request selector for this SLINK controller. | 8 | See ../clocks/clock-bindings.txt for details. |
| 9 | - resets : Must contain an entry for each entry in reset-names. | ||
| 10 | See ../reset/reset.txt for details. | ||
| 11 | - reset-names : Must include the following entries: | ||
| 12 | - spi | ||
| 13 | - dmas : Must contain an entry for each entry in clock-names. | ||
| 14 | See ../dma/dma.txt for details. | ||
| 15 | - dma-names : Must include the following entries: | ||
| 16 | - rx | ||
| 17 | - tx | ||
| 9 | 18 | ||
| 10 | Recommended properties: | 19 | Recommended properties: |
| 11 | - spi-max-frequency: Definition as per | 20 | - spi-max-frequency: Definition as per |
| @@ -17,10 +26,13 @@ spi@7000d600 { | |||
| 17 | compatible = "nvidia,tegra20-slink"; | 26 | compatible = "nvidia,tegra20-slink"; |
| 18 | reg = <0x7000d600 0x200>; | 27 | reg = <0x7000d600 0x200>; |
| 19 | interrupts = <0 82 0x04>; | 28 | interrupts = <0 82 0x04>; |
| 20 | nvidia,dma-request-selector = <&apbdma 16>; | ||
| 21 | spi-max-frequency = <25000000>; | 29 | spi-max-frequency = <25000000>; |
| 22 | #address-cells = <1>; | 30 | #address-cells = <1>; |
| 23 | #size-cells = <0>; | 31 | #size-cells = <0>; |
| 32 | clocks = <&tegra_car 44>; | ||
| 33 | resets = <&tegra_car 44>; | ||
| 34 | reset-names = "spi"; | ||
| 35 | dmas = <&apbdma 16>, <&apbdma 16>; | ||
| 36 | dma-names = "rx", "tx"; | ||
| 24 | status = "disabled"; | 37 | status = "disabled"; |
| 25 | }; | 38 | }; |
| 26 | |||
diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt index 800dafe5b01b..e5a4d1b4acfe 100644 --- a/Documentation/devicetree/bindings/spi/spi-bus.txt +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt | |||
| @@ -67,7 +67,7 @@ only 1(SINGLE), 2(DUAL) and 4(QUAD). | |||
| 67 | Dual/Quad mode is not allowed when 3-wire mode is used. | 67 | Dual/Quad mode is not allowed when 3-wire mode is used. |
| 68 | 68 | ||
| 69 | 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 |
| 70 | via the cs_gpio | 70 | via the SPI master node cs-gpios property. |
| 71 | 71 | ||
| 72 | SPI example for an MPC5200 SPI bus: | 72 | SPI example for an MPC5200 SPI bus: |
| 73 | spi@f00 { | 73 | spi@f00 { |
diff --git a/Documentation/devicetree/bindings/spi/spi_atmel.txt b/Documentation/devicetree/bindings/spi/spi_atmel.txt index 07e04cdc0c9e..4f8184d069cb 100644 --- a/Documentation/devicetree/bindings/spi/spi_atmel.txt +++ b/Documentation/devicetree/bindings/spi/spi_atmel.txt | |||
| @@ -5,6 +5,9 @@ Required properties: | |||
| 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 spi interrupt | 6 | - interrupts: Should contain spi interrupt |
| 7 | - cs-gpios: chipselects | 7 | - cs-gpios: chipselects |
| 8 | - clock-names: tuple listing input clock names. | ||
| 9 | Required elements: "spi_clk" | ||
| 10 | - clocks: phandles to input clocks. | ||
| 8 | 11 | ||
| 9 | Example: | 12 | Example: |
| 10 | 13 | ||
| @@ -14,6 +17,8 @@ spi1: spi@fffcc000 { | |||
| 14 | interrupts = <13 4 5>; | 17 | interrupts = <13 4 5>; |
| 15 | #address-cells = <1>; | 18 | #address-cells = <1>; |
| 16 | #size-cells = <0>; | 19 | #size-cells = <0>; |
| 20 | clocks = <&spi1_clk>; | ||
| 21 | clock-names = "spi_clk"; | ||
| 17 | cs-gpios = <&pioB 3 0>; | 22 | cs-gpios = <&pioB 3 0>; |
| 18 | status = "okay"; | 23 | status = "okay"; |
| 19 | 24 | ||
diff --git a/Documentation/devicetree/bindings/spi/ti_qspi.txt b/Documentation/devicetree/bindings/spi/ti_qspi.txt index 1f9641ade0b5..601a360531a5 100644 --- a/Documentation/devicetree/bindings/spi/ti_qspi.txt +++ b/Documentation/devicetree/bindings/spi/ti_qspi.txt | |||
| @@ -3,6 +3,11 @@ TI QSPI controller. | |||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : should be "ti,dra7xxx-qspi" or "ti,am4372-qspi". | 4 | - compatible : should be "ti,dra7xxx-qspi" or "ti,am4372-qspi". |
| 5 | - reg: Should contain QSPI registers location and length. | 5 | - reg: Should contain QSPI registers location and length. |
| 6 | - reg-names: Should contain the resource reg names. | ||
| 7 | - qspi_base: Qspi configuration register Address space | ||
| 8 | - qspi_mmap: Memory mapped Address space | ||
| 9 | - (optional) qspi_ctrlmod: Control module Address space | ||
| 10 | - interrupts: should contain the qspi interrupt number. | ||
| 6 | - #address-cells, #size-cells : Must be present if the device has sub-nodes | 11 | - #address-cells, #size-cells : Must be present if the device has sub-nodes |
| 7 | - ti,hwmods: Name of the hwmod associated to the QSPI | 12 | - ti,hwmods: Name of the hwmod associated to the QSPI |
| 8 | 13 | ||
| @@ -14,7 +19,8 @@ Example: | |||
| 14 | 19 | ||
| 15 | qspi: qspi@4b300000 { | 20 | qspi: qspi@4b300000 { |
| 16 | compatible = "ti,dra7xxx-qspi"; | 21 | compatible = "ti,dra7xxx-qspi"; |
| 17 | reg = <0x4b300000 0x100>; | 22 | reg = <0x47900000 0x100>, <0x30000000 0x3ffffff>; |
| 23 | reg-names = "qspi_base", "qspi_mmap"; | ||
| 18 | #address-cells = <1>; | 24 | #address-cells = <1>; |
| 19 | #size-cells = <0>; | 25 | #size-cells = <0>; |
| 20 | spi-max-frequency = <25000000>; | 26 | spi-max-frequency = <25000000>; |
diff --git a/Documentation/devicetree/bindings/staging/dwc2.txt b/Documentation/devicetree/bindings/staging/dwc2.txt deleted file mode 100644 index 1a1b7cfa4845..000000000000 --- a/Documentation/devicetree/bindings/staging/dwc2.txt +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | Platform DesignWare HS OTG USB 2.0 controller | ||
| 2 | ----------------------------------------------------- | ||
| 3 | |||
| 4 | Required properties: | ||
| 5 | - compatible : "snps,dwc2" | ||
| 6 | - reg : Should contain 1 register range (address and length) | ||
| 7 | - interrupts : Should contain 1 interrupt | ||
| 8 | |||
| 9 | Example: | ||
| 10 | |||
| 11 | usb@101c0000 { | ||
| 12 | compatible = "ralink,rt3050-usb, snps,dwc2"; | ||
| 13 | reg = <0x101c0000 40000>; | ||
| 14 | interrupts = <18>; | ||
| 15 | }; | ||
diff --git a/Documentation/devicetree/bindings/staging/xillybus.txt b/Documentation/devicetree/bindings/staging/xillybus.txt new file mode 100644 index 000000000000..9e316dc2e40f --- /dev/null +++ b/Documentation/devicetree/bindings/staging/xillybus.txt | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | * Xillybus driver for generic FPGA interface | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "xillybus,xillybus-1.00.a" | ||
| 5 | - reg: Address and length of the register set for the device | ||
| 6 | - interrupts: Contains one interrupt node, typically consisting of three cells. | ||
| 7 | - interrupt-parent: the phandle for the interrupt controller that | ||
| 8 | services interrupts for this device. | ||
| 9 | |||
| 10 | Optional properties: | ||
| 11 | - dma-coherent: Present if DMA operations are coherent | ||
| 12 | |||
| 13 | Example: | ||
| 14 | |||
| 15 | xillybus@ff200400 { | ||
| 16 | compatible = "xillybus,xillybus-1.00.a"; | ||
| 17 | reg = < 0xff200400 0x00000080 >; | ||
| 18 | interrupts = < 0 40 1 >; | ||
| 19 | interrupt-parent = <&intc>; | ||
| 20 | } ; | ||
diff --git a/Documentation/devicetree/bindings/submitting-patches.txt b/Documentation/devicetree/bindings/submitting-patches.txt new file mode 100644 index 000000000000..042a0273b8ba --- /dev/null +++ b/Documentation/devicetree/bindings/submitting-patches.txt | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | |||
| 2 | Submitting devicetree (DT) binding patches | ||
| 3 | |||
| 4 | I. For patch submitters | ||
| 5 | |||
| 6 | 0) Normal patch submission rules from Documentation/SubmittingPatches | ||
| 7 | applies. | ||
| 8 | |||
| 9 | 1) The Documentation/ portion of the patch should be a separate patch. | ||
| 10 | |||
| 11 | 2) Submit the entire series to the devicetree mailinglist at | ||
| 12 | |||
| 13 | devicetree@vger.kernel.org | ||
| 14 | |||
| 15 | II. For kernel maintainers | ||
| 16 | |||
| 17 | 1) If you aren't comfortable reviewing a given binding, reply to it and ask | ||
| 18 | the devicetree maintainers for guidance. This will help them prioritize | ||
| 19 | which ones to review and which ones are ok to let go. | ||
| 20 | |||
| 21 | 2) For driver (not subsystem) bindings: If you are comfortable with the | ||
| 22 | binding, and it hasn't received an Acked-by from the devicetree | ||
| 23 | maintainers after a few weeks, go ahead and take it. | ||
| 24 | |||
| 25 | Subsystem bindings (anything affecting more than a single device) | ||
| 26 | then getting a devicetree maintainer to review it is required. | ||
| 27 | |||
| 28 | 3) For a series going though multiple trees, the binding patch should be | ||
| 29 | kept with the driver using the binding. | ||
| 30 | |||
| 31 | III. Notes | ||
| 32 | |||
| 33 | 0) Please see ...bindings/ABI.txt for details regarding devicetree ABI. | ||
| 34 | |||
| 35 | 1) This document is intended as a general familiarization with the process as | ||
| 36 | decided at the 2013 Kernel Summit. When in doubt, the current word of the | ||
| 37 | devicetree maintainers overrules this document. In that situation, a patch | ||
| 38 | updating this document would be appreciated. | ||
diff --git a/Documentation/devicetree/bindings/thermal/imx-thermal.txt b/Documentation/devicetree/bindings/thermal/imx-thermal.txt index 541c25e49abf..1f0f67234a91 100644 --- a/Documentation/devicetree/bindings/thermal/imx-thermal.txt +++ b/Documentation/devicetree/bindings/thermal/imx-thermal.txt | |||
| @@ -8,10 +8,14 @@ Required properties: | |||
| 8 | calibration data, e.g. OCOTP on imx6q. The details about calibration data | 8 | calibration data, e.g. OCOTP on imx6q. The details about calibration data |
| 9 | can be found in SoC Reference Manual. | 9 | can be found in SoC Reference Manual. |
| 10 | 10 | ||
| 11 | Optional properties: | ||
| 12 | - clocks : thermal sensor's clock source. | ||
| 13 | |||
| 11 | Example: | 14 | Example: |
| 12 | 15 | ||
| 13 | tempmon { | 16 | tempmon { |
| 14 | compatible = "fsl,imx6q-tempmon"; | 17 | compatible = "fsl,imx6q-tempmon"; |
| 15 | fsl,tempmon = <&anatop>; | 18 | fsl,tempmon = <&anatop>; |
| 16 | fsl,tempmon-data = <&ocotp>; | 19 | fsl,tempmon-data = <&ocotp>; |
| 20 | clocks = <&clks 172>; | ||
| 17 | }; | 21 | }; |
diff --git a/Documentation/devicetree/bindings/thermal/thermal.txt b/Documentation/devicetree/bindings/thermal/thermal.txt new file mode 100644 index 000000000000..f5db6b72a36f --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/thermal.txt | |||
| @@ -0,0 +1,595 @@ | |||
| 1 | * Thermal Framework Device Tree descriptor | ||
| 2 | |||
| 3 | This file describes a generic binding to provide a way of | ||
| 4 | defining hardware thermal structure using device tree. | ||
| 5 | A thermal structure includes thermal zones and their components, | ||
| 6 | such as trip points, polling intervals, sensors and cooling devices | ||
| 7 | binding descriptors. | ||
| 8 | |||
| 9 | The target of device tree thermal descriptors is to describe only | ||
| 10 | the hardware thermal aspects. The thermal device tree bindings are | ||
| 11 | not about how the system must control or which algorithm or policy | ||
| 12 | must be taken in place. | ||
| 13 | |||
| 14 | There are five types of nodes involved to describe thermal bindings: | ||
| 15 | - thermal sensors: devices which may be used to take temperature | ||
| 16 | measurements. | ||
| 17 | - cooling devices: devices which may be used to dissipate heat. | ||
| 18 | - trip points: describe key temperatures at which cooling is recommended. The | ||
| 19 | set of points should be chosen based on hardware limits. | ||
| 20 | - cooling maps: used to describe links between trip points and cooling devices; | ||
| 21 | - thermal zones: used to describe thermal data within the hardware; | ||
| 22 | |||
| 23 | The following is a description of each of these node types. | ||
| 24 | |||
| 25 | * Thermal sensor devices | ||
| 26 | |||
| 27 | Thermal sensor devices are nodes providing temperature sensing capabilities on | ||
| 28 | thermal zones. Typical devices are I2C ADC converters and bandgaps. These are | ||
| 29 | nodes providing temperature data to thermal zones. Thermal sensor devices may | ||
| 30 | control one or more internal sensors. | ||
| 31 | |||
| 32 | Required property: | ||
| 33 | - #thermal-sensor-cells: Used to provide sensor device specific information | ||
| 34 | Type: unsigned while referring to it. Typically 0 on thermal sensor | ||
| 35 | Size: one cell nodes with only one sensor, and at least 1 on nodes | ||
| 36 | with several internal sensors, in order | ||
| 37 | to identify uniquely the sensor instances within | ||
| 38 | the IC. See thermal zone binding for more details | ||
| 39 | on how consumers refer to sensor devices. | ||
| 40 | |||
| 41 | * Cooling device nodes | ||
| 42 | |||
| 43 | Cooling devices are nodes providing control on power dissipation. There | ||
| 44 | are essentially two ways to provide control on power dissipation. First | ||
| 45 | is by means of regulating device performance, which is known as passive | ||
| 46 | cooling. A typical passive cooling is a CPU that has dynamic voltage and | ||
| 47 | frequency scaling (DVFS), and uses lower frequencies as cooling states. | ||
| 48 | Second is by means of activating devices in order to remove | ||
| 49 | the dissipated heat, which is known as active cooling, e.g. regulating | ||
| 50 | fan speeds. In both cases, cooling devices shall have a way to determine | ||
| 51 | the state of cooling in which the device is. | ||
| 52 | |||
| 53 | Any cooling device has a range of cooling states (i.e. different levels | ||
| 54 | of heat dissipation). For example a fan's cooling states correspond to | ||
| 55 | the different fan speeds possible. Cooling states are referred to by | ||
| 56 | single unsigned integers, where larger numbers mean greater heat | ||
| 57 | dissipation. The precise set of cooling states associated with a device | ||
| 58 | (as referred to be the cooling-min-state and cooling-max-state | ||
| 59 | properties) should be defined in a particular device's binding. | ||
| 60 | For more examples of cooling devices, refer to the example sections below. | ||
| 61 | |||
| 62 | Required properties: | ||
| 63 | - cooling-min-state: An integer indicating the smallest | ||
| 64 | Type: unsigned cooling state accepted. Typically 0. | ||
| 65 | Size: one cell | ||
| 66 | |||
| 67 | - cooling-max-state: An integer indicating the largest | ||
| 68 | Type: unsigned cooling state accepted. | ||
| 69 | Size: one cell | ||
| 70 | |||
| 71 | - #cooling-cells: Used to provide cooling device specific information | ||
| 72 | Type: unsigned while referring to it. Must be at least 2, in order | ||
| 73 | Size: one cell to specify minimum and maximum cooling state used | ||
| 74 | in the reference. The first cell is the minimum | ||
| 75 | cooling state requested and the second cell is | ||
| 76 | the maximum cooling state requested in the reference. | ||
| 77 | See Cooling device maps section below for more details | ||
| 78 | on how consumers refer to cooling devices. | ||
| 79 | |||
| 80 | * Trip points | ||
| 81 | |||
| 82 | The trip node is a node to describe a point in the temperature domain | ||
| 83 | in which the system takes an action. This node describes just the point, | ||
| 84 | not the action. | ||
| 85 | |||
| 86 | Required properties: | ||
| 87 | - temperature: An integer indicating the trip temperature level, | ||
| 88 | Type: signed in millicelsius. | ||
| 89 | Size: one cell | ||
| 90 | |||
| 91 | - hysteresis: A low hysteresis value on temperature property (above). | ||
| 92 | Type: unsigned This is a relative value, in millicelsius. | ||
| 93 | Size: one cell | ||
| 94 | |||
| 95 | - type: a string containing the trip type. Expected values are: | ||
| 96 | "active": A trip point to enable active cooling | ||
| 97 | "passive": A trip point to enable passive cooling | ||
| 98 | "hot": A trip point to notify emergency | ||
| 99 | "critical": Hardware not reliable. | ||
| 100 | Type: string | ||
| 101 | |||
| 102 | * Cooling device maps | ||
| 103 | |||
| 104 | The cooling device maps node is a node to describe how cooling devices | ||
| 105 | get assigned to trip points of the zone. The cooling devices are expected | ||
| 106 | to be loaded in the target system. | ||
| 107 | |||
| 108 | Required properties: | ||
| 109 | - cooling-device: A phandle of a cooling device with its specifier, | ||
| 110 | Type: phandle + referring to which cooling device is used in this | ||
| 111 | cooling specifier binding. In the cooling specifier, the first cell | ||
| 112 | is the minimum cooling state and the second cell | ||
| 113 | is the maximum cooling state used in this map. | ||
| 114 | - trip: A phandle of a trip point node within the same thermal | ||
| 115 | Type: phandle of zone. | ||
| 116 | trip point node | ||
| 117 | |||
| 118 | Optional property: | ||
| 119 | - contribution: The cooling contribution to the thermal zone of the | ||
| 120 | Type: unsigned referred cooling device at the referred trip point. | ||
| 121 | Size: one cell The contribution is a ratio of the sum | ||
| 122 | of all cooling contributions within a thermal zone. | ||
| 123 | |||
| 124 | Note: Using the THERMAL_NO_LIMIT (-1UL) constant in the cooling-device phandle | ||
| 125 | limit specifier means: | ||
| 126 | (i) - minimum state allowed for minimum cooling state used in the reference. | ||
| 127 | (ii) - maximum state allowed for maximum cooling state used in the reference. | ||
| 128 | Refer to include/dt-bindings/thermal/thermal.h for definition of this constant. | ||
| 129 | |||
| 130 | * Thermal zone nodes | ||
| 131 | |||
| 132 | The thermal zone node is the node containing all the required info | ||
| 133 | for describing a thermal zone, including its cooling device bindings. The | ||
| 134 | thermal zone node must contain, apart from its own properties, one sub-node | ||
| 135 | containing trip nodes and one sub-node containing all the zone cooling maps. | ||
| 136 | |||
| 137 | Required properties: | ||
| 138 | - polling-delay: The maximum number of milliseconds to wait between polls | ||
| 139 | Type: unsigned when checking this thermal zone. | ||
| 140 | Size: one cell | ||
| 141 | |||
| 142 | - polling-delay-passive: The maximum number of milliseconds to wait | ||
| 143 | Type: unsigned between polls when performing passive cooling. | ||
| 144 | Size: one cell | ||
| 145 | |||
| 146 | - thermal-sensors: A list of thermal sensor phandles and sensor specifier | ||
| 147 | Type: list of used while monitoring the thermal zone. | ||
| 148 | phandles + sensor | ||
| 149 | specifier | ||
| 150 | |||
| 151 | - trips: A sub-node which is a container of only trip point nodes | ||
| 152 | Type: sub-node required to describe the thermal zone. | ||
| 153 | |||
| 154 | - cooling-maps: A sub-node which is a container of only cooling device | ||
| 155 | Type: sub-node map nodes, used to describe the relation between trips | ||
| 156 | and cooling devices. | ||
| 157 | |||
| 158 | Optional property: | ||
| 159 | - coefficients: An array of integers (one signed cell) containing | ||
| 160 | Type: array coefficients to compose a linear relation between | ||
| 161 | Elem size: one cell the sensors listed in the thermal-sensors property. | ||
| 162 | Elem type: signed Coefficients defaults to 1, in case this property | ||
| 163 | is not specified. A simple linear polynomial is used: | ||
| 164 | Z = c0 * x0 + c1 + x1 + ... + c(n-1) * x(n-1) + cn. | ||
| 165 | |||
| 166 | The coefficients are ordered and they match with sensors | ||
| 167 | by means of sensor ID. Additional coefficients are | ||
| 168 | interpreted as constant offset. | ||
| 169 | |||
| 170 | Note: The delay properties are bound to the maximum dT/dt (temperature | ||
| 171 | derivative over time) in two situations for a thermal zone: | ||
| 172 | (i) - when passive cooling is activated (polling-delay-passive); and | ||
| 173 | (ii) - when the zone just needs to be monitored (polling-delay) or | ||
| 174 | when active cooling is activated. | ||
| 175 | |||
| 176 | The maximum dT/dt is highly bound to hardware power consumption and dissipation | ||
| 177 | capability. The delays should be chosen to account for said max dT/dt, | ||
| 178 | such that a device does not cross several trip boundaries unexpectedly | ||
| 179 | between polls. Choosing the right polling delays shall avoid having the | ||
| 180 | device in temperature ranges that may damage the silicon structures and | ||
| 181 | reduce silicon lifetime. | ||
| 182 | |||
| 183 | * The thermal-zones node | ||
| 184 | |||
| 185 | The "thermal-zones" node is a container for all thermal zone nodes. It shall | ||
| 186 | contain only sub-nodes describing thermal zones as in the section | ||
| 187 | "Thermal zone nodes". The "thermal-zones" node appears under "/". | ||
| 188 | |||
| 189 | * Examples | ||
| 190 | |||
| 191 | Below are several examples on how to use thermal data descriptors | ||
| 192 | using device tree bindings: | ||
| 193 | |||
| 194 | (a) - CPU thermal zone | ||
| 195 | |||
| 196 | The CPU thermal zone example below describes how to setup one thermal zone | ||
| 197 | using one single sensor as temperature source and many cooling devices and | ||
| 198 | power dissipation control sources. | ||
| 199 | |||
| 200 | #include <dt-bindings/thermal/thermal.h> | ||
| 201 | |||
| 202 | cpus { | ||
| 203 | /* | ||
| 204 | * Here is an example of describing a cooling device for a DVFS | ||
| 205 | * capable CPU. The CPU node describes its four OPPs. | ||
| 206 | * The cooling states possible are 0..3, and they are | ||
| 207 | * used as OPP indexes. The minimum cooling state is 0, which means | ||
| 208 | * all four OPPs can be available to the system. The maximum | ||
| 209 | * cooling state is 3, which means only the lowest OPPs (198MHz@0.85V) | ||
| 210 | * can be available in the system. | ||
| 211 | */ | ||
| 212 | cpu0: cpu@0 { | ||
| 213 | ... | ||
| 214 | operating-points = < | ||
| 215 | /* kHz uV */ | ||
| 216 | 970000 1200000 | ||
| 217 | 792000 1100000 | ||
| 218 | 396000 950000 | ||
| 219 | 198000 850000 | ||
| 220 | >; | ||
| 221 | cooling-min-state = <0>; | ||
| 222 | cooling-max-state = <3>; | ||
| 223 | #cooling-cells = <2>; /* min followed by max */ | ||
| 224 | }; | ||
| 225 | ... | ||
| 226 | }; | ||
| 227 | |||
| 228 | &i2c1 { | ||
| 229 | ... | ||
| 230 | /* | ||
| 231 | * A simple fan controller which supports 10 speeds of operation | ||
| 232 | * (represented as 0-9). | ||
| 233 | */ | ||
| 234 | fan0: fan@0x48 { | ||
| 235 | ... | ||
| 236 | cooling-min-state = <0>; | ||
| 237 | cooling-max-state = <9>; | ||
| 238 | #cooling-cells = <2>; /* min followed by max */ | ||
| 239 | }; | ||
| 240 | }; | ||
| 241 | |||
| 242 | ocp { | ||
| 243 | ... | ||
| 244 | /* | ||
| 245 | * A simple IC with a single bandgap temperature sensor. | ||
| 246 | */ | ||
| 247 | bandgap0: bandgap@0x0000ED00 { | ||
| 248 | ... | ||
| 249 | #thermal-sensor-cells = <0>; | ||
| 250 | }; | ||
| 251 | }; | ||
| 252 | |||
| 253 | thermal-zones { | ||
| 254 | cpu-thermal: cpu-thermal { | ||
| 255 | polling-delay-passive = <250>; /* milliseconds */ | ||
| 256 | polling-delay = <1000>; /* milliseconds */ | ||
| 257 | |||
| 258 | thermal-sensors = <&bandgap0>; | ||
| 259 | |||
| 260 | trips { | ||
| 261 | cpu-alert0: cpu-alert { | ||
| 262 | temperature = <90000>; /* millicelsius */ | ||
| 263 | hysteresis = <2000>; /* millicelsius */ | ||
| 264 | type = "active"; | ||
| 265 | }; | ||
| 266 | cpu-alert1: cpu-alert { | ||
| 267 | temperature = <100000>; /* millicelsius */ | ||
| 268 | hysteresis = <2000>; /* millicelsius */ | ||
| 269 | type = "passive"; | ||
| 270 | }; | ||
| 271 | cpu-crit: cpu-crit { | ||
| 272 | temperature = <125000>; /* millicelsius */ | ||
| 273 | hysteresis = <2000>; /* millicelsius */ | ||
| 274 | type = "critical"; | ||
| 275 | }; | ||
| 276 | }; | ||
| 277 | |||
| 278 | cooling-maps { | ||
| 279 | map0 { | ||
| 280 | trip = <&cpu-alert0>; | ||
| 281 | cooling-device = <&fan0 THERMAL_NO_LIMITS 4>; | ||
| 282 | }; | ||
| 283 | map1 { | ||
| 284 | trip = <&cpu-alert1>; | ||
| 285 | cooling-device = <&fan0 5 THERMAL_NO_LIMITS>; | ||
| 286 | }; | ||
| 287 | map2 { | ||
| 288 | trip = <&cpu-alert1>; | ||
| 289 | cooling-device = | ||
| 290 | <&cpu0 THERMAL_NO_LIMITS THERMAL_NO_LIMITS>; | ||
| 291 | }; | ||
| 292 | }; | ||
| 293 | }; | ||
| 294 | }; | ||
| 295 | |||
| 296 | In the example above, the ADC sensor (bandgap0) at address 0x0000ED00 is | ||
| 297 | used to monitor the zone 'cpu-thermal' using its sole sensor. A fan | ||
| 298 | device (fan0) is controlled via I2C bus 1, at address 0x48, and has ten | ||
| 299 | different cooling states 0-9. It is used to remove the heat out of | ||
| 300 | the thermal zone 'cpu-thermal' using its cooling states | ||
| 301 | from its minimum to 4, when it reaches trip point 'cpu-alert0' | ||
| 302 | at 90C, as an example of active cooling. The same cooling device is used at | ||
| 303 | 'cpu-alert1', but from 5 to its maximum state. The cpu@0 device is also | ||
| 304 | linked to the same thermal zone, 'cpu-thermal', as a passive cooling device, | ||
| 305 | using all its cooling states at trip point 'cpu-alert1', | ||
| 306 | which is a trip point at 100C. On the thermal zone 'cpu-thermal', at the | ||
| 307 | temperature of 125C, represented by the trip point 'cpu-crit', the silicon | ||
| 308 | is not reliable anymore. | ||
| 309 | |||
| 310 | (b) - IC with several internal sensors | ||
| 311 | |||
| 312 | The example below describes how to deploy several thermal zones based off a | ||
| 313 | single sensor IC, assuming it has several internal sensors. This is a common | ||
| 314 | case on SoC designs with several internal IPs that may need different thermal | ||
| 315 | requirements, and thus may have their own sensor to monitor or detect internal | ||
| 316 | hotspots in their silicon. | ||
| 317 | |||
| 318 | #include <dt-bindings/thermal/thermal.h> | ||
| 319 | |||
| 320 | ocp { | ||
| 321 | ... | ||
| 322 | /* | ||
| 323 | * A simple IC with several bandgap temperature sensors. | ||
| 324 | */ | ||
| 325 | bandgap0: bandgap@0x0000ED00 { | ||
| 326 | ... | ||
| 327 | #thermal-sensor-cells = <1>; | ||
| 328 | }; | ||
| 329 | }; | ||
| 330 | |||
| 331 | thermal-zones { | ||
| 332 | cpu-thermal: cpu-thermal { | ||
| 333 | polling-delay-passive = <250>; /* milliseconds */ | ||
| 334 | polling-delay = <1000>; /* milliseconds */ | ||
| 335 | |||
| 336 | /* sensor ID */ | ||
| 337 | thermal-sensors = <&bandgap0 0>; | ||
| 338 | |||
| 339 | trips { | ||
| 340 | /* each zone within the SoC may have its own trips */ | ||
| 341 | cpu-alert: cpu-alert { | ||
| 342 | temperature = <100000>; /* millicelsius */ | ||
| 343 | hysteresis = <2000>; /* millicelsius */ | ||
| 344 | type = "passive"; | ||
| 345 | }; | ||
| 346 | cpu-crit: cpu-crit { | ||
| 347 | temperature = <125000>; /* millicelsius */ | ||
| 348 | hysteresis = <2000>; /* millicelsius */ | ||
| 349 | type = "critical"; | ||
| 350 | }; | ||
| 351 | }; | ||
| 352 | |||
| 353 | cooling-maps { | ||
| 354 | /* each zone within the SoC may have its own cooling */ | ||
| 355 | ... | ||
| 356 | }; | ||
| 357 | }; | ||
| 358 | |||
| 359 | gpu-thermal: gpu-thermal { | ||
| 360 | polling-delay-passive = <120>; /* milliseconds */ | ||
| 361 | polling-delay = <1000>; /* milliseconds */ | ||
| 362 | |||
| 363 | /* sensor ID */ | ||
| 364 | thermal-sensors = <&bandgap0 1>; | ||
| 365 | |||
| 366 | trips { | ||
| 367 | /* each zone within the SoC may have its own trips */ | ||
| 368 | gpu-alert: gpu-alert { | ||
| 369 | temperature = <90000>; /* millicelsius */ | ||
| 370 | hysteresis = <2000>; /* millicelsius */ | ||
| 371 | type = "passive"; | ||
| 372 | }; | ||
| 373 | gpu-crit: gpu-crit { | ||
| 374 | temperature = <105000>; /* millicelsius */ | ||
| 375 | hysteresis = <2000>; /* millicelsius */ | ||
| 376 | type = "critical"; | ||
| 377 | }; | ||
| 378 | }; | ||
| 379 | |||
| 380 | cooling-maps { | ||
| 381 | /* each zone within the SoC may have its own cooling */ | ||
| 382 | ... | ||
| 383 | }; | ||
| 384 | }; | ||
| 385 | |||
| 386 | dsp-thermal: dsp-thermal { | ||
| 387 | polling-delay-passive = <50>; /* milliseconds */ | ||
| 388 | polling-delay = <1000>; /* milliseconds */ | ||
| 389 | |||
| 390 | /* sensor ID */ | ||
| 391 | thermal-sensors = <&bandgap0 2>; | ||
| 392 | |||
| 393 | trips { | ||
| 394 | /* each zone within the SoC may have its own trips */ | ||
| 395 | dsp-alert: gpu-alert { | ||
| 396 | temperature = <90000>; /* millicelsius */ | ||
| 397 | hysteresis = <2000>; /* millicelsius */ | ||
| 398 | type = "passive"; | ||
| 399 | }; | ||
| 400 | dsp-crit: gpu-crit { | ||
| 401 | temperature = <135000>; /* millicelsius */ | ||
| 402 | hysteresis = <2000>; /* millicelsius */ | ||
| 403 | type = "critical"; | ||
| 404 | }; | ||
| 405 | }; | ||
| 406 | |||
| 407 | cooling-maps { | ||
| 408 | /* each zone within the SoC may have its own cooling */ | ||
| 409 | ... | ||
| 410 | }; | ||
| 411 | }; | ||
| 412 | }; | ||
| 413 | |||
| 414 | In the example above, there is one bandgap IC which has the capability to | ||
| 415 | monitor three sensors. The hardware has been designed so that sensors are | ||
| 416 | placed on different places in the DIE to monitor different temperature | ||
| 417 | hotspots: one for CPU thermal zone, one for GPU thermal zone and the | ||
| 418 | other to monitor a DSP thermal zone. | ||
| 419 | |||
| 420 | Thus, there is a need to assign each sensor provided by the bandgap IC | ||
| 421 | to different thermal zones. This is achieved by means of using the | ||
| 422 | #thermal-sensor-cells property and using the first cell of the sensor | ||
| 423 | specifier as sensor ID. In the example, then, <bandgap 0> is used to | ||
| 424 | monitor CPU thermal zone, <bandgap 1> is used to monitor GPU thermal | ||
| 425 | zone and <bandgap 2> is used to monitor DSP thermal zone. Each zone | ||
| 426 | may be uncorrelated, having its own dT/dt requirements, trips | ||
| 427 | and cooling maps. | ||
| 428 | |||
| 429 | |||
| 430 | (c) - Several sensors within one single thermal zone | ||
| 431 | |||
| 432 | The example below illustrates how to use more than one sensor within | ||
| 433 | one thermal zone. | ||
| 434 | |||
| 435 | #include <dt-bindings/thermal/thermal.h> | ||
| 436 | |||
| 437 | &i2c1 { | ||
| 438 | ... | ||
| 439 | /* | ||
| 440 | * A simple IC with a single temperature sensor. | ||
| 441 | */ | ||
| 442 | adc: sensor@0x49 { | ||
| 443 | ... | ||
| 444 | #thermal-sensor-cells = <0>; | ||
| 445 | }; | ||
| 446 | }; | ||
| 447 | |||
| 448 | ocp { | ||
| 449 | ... | ||
| 450 | /* | ||
| 451 | * A simple IC with a single bandgap temperature sensor. | ||
| 452 | */ | ||
| 453 | bandgap0: bandgap@0x0000ED00 { | ||
| 454 | ... | ||
| 455 | #thermal-sensor-cells = <0>; | ||
| 456 | }; | ||
| 457 | }; | ||
| 458 | |||
| 459 | thermal-zones { | ||
| 460 | cpu-thermal: cpu-thermal { | ||
| 461 | polling-delay-passive = <250>; /* milliseconds */ | ||
| 462 | polling-delay = <1000>; /* milliseconds */ | ||
| 463 | |||
| 464 | thermal-sensors = <&bandgap0>, /* cpu */ | ||
| 465 | <&adc>; /* pcb north */ | ||
| 466 | |||
| 467 | /* hotspot = 100 * bandgap - 120 * adc + 484 */ | ||
| 468 | coefficients = <100 -120 484>; | ||
| 469 | |||
| 470 | trips { | ||
| 471 | ... | ||
| 472 | }; | ||
| 473 | |||
| 474 | cooling-maps { | ||
| 475 | ... | ||
| 476 | }; | ||
| 477 | }; | ||
| 478 | }; | ||
| 479 | |||
| 480 | In some cases, there is a need to use more than one sensor to extrapolate | ||
| 481 | a thermal hotspot in the silicon. The above example illustrates this situation. | ||
| 482 | For instance, it may be the case that a sensor external to CPU IP may be placed | ||
| 483 | close to CPU hotspot and together with internal CPU sensor, it is used | ||
| 484 | to determine the hotspot. Assuming this is the case for the above example, | ||
| 485 | the hypothetical extrapolation rule would be: | ||
| 486 | hotspot = 100 * bandgap - 120 * adc + 484 | ||
| 487 | |||
| 488 | In other context, the same idea can be used to add fixed offset. For instance, | ||
| 489 | consider the hotspot extrapolation rule below: | ||
| 490 | hotspot = 1 * adc + 6000 | ||
| 491 | |||
| 492 | In the above equation, the hotspot is always 6C higher than what is read | ||
| 493 | from the ADC sensor. The binding would be then: | ||
| 494 | thermal-sensors = <&adc>; | ||
| 495 | |||
| 496 | /* hotspot = 1 * adc + 6000 */ | ||
| 497 | coefficients = <1 6000>; | ||
| 498 | |||
| 499 | (d) - Board thermal | ||
| 500 | |||
| 501 | The board thermal example below illustrates how to setup one thermal zone | ||
| 502 | with many sensors and many cooling devices. | ||
| 503 | |||
| 504 | #include <dt-bindings/thermal/thermal.h> | ||
| 505 | |||
| 506 | &i2c1 { | ||
| 507 | ... | ||
| 508 | /* | ||
| 509 | * An IC with several temperature sensor. | ||
| 510 | */ | ||
| 511 | adc-dummy: sensor@0x50 { | ||
| 512 | ... | ||
| 513 | #thermal-sensor-cells = <1>; /* sensor internal ID */ | ||
| 514 | }; | ||
| 515 | }; | ||
| 516 | |||
| 517 | thermal-zones { | ||
| 518 | batt-thermal { | ||
| 519 | polling-delay-passive = <500>; /* milliseconds */ | ||
| 520 | polling-delay = <2500>; /* milliseconds */ | ||
| 521 | |||
| 522 | /* sensor ID */ | ||
| 523 | thermal-sensors = <&adc-dummy 4>; | ||
| 524 | |||
| 525 | trips { | ||
| 526 | ... | ||
| 527 | }; | ||
| 528 | |||
| 529 | cooling-maps { | ||
| 530 | ... | ||
| 531 | }; | ||
| 532 | }; | ||
| 533 | |||
| 534 | board-thermal: board-thermal { | ||
| 535 | polling-delay-passive = <1000>; /* milliseconds */ | ||
| 536 | polling-delay = <2500>; /* milliseconds */ | ||
| 537 | |||
| 538 | /* sensor ID */ | ||
| 539 | thermal-sensors = <&adc-dummy 0>, /* pcb top edge */ | ||
| 540 | <&adc-dummy 1>, /* lcd */ | ||
| 541 | <&adc-dymmy 2>; /* back cover */ | ||
| 542 | /* | ||
| 543 | * An array of coefficients describing the sensor | ||
| 544 | * linear relation. E.g.: | ||
| 545 | * z = c1*x1 + c2*x2 + c3*x3 | ||
| 546 | */ | ||
| 547 | coefficients = <1200 -345 890>; | ||
| 548 | |||
| 549 | trips { | ||
| 550 | /* Trips are based on resulting linear equation */ | ||
| 551 | cpu-trip: cpu-trip { | ||
| 552 | temperature = <60000>; /* millicelsius */ | ||
| 553 | hysteresis = <2000>; /* millicelsius */ | ||
| 554 | type = "passive"; | ||
| 555 | }; | ||
| 556 | gpu-trip: gpu-trip { | ||
| 557 | temperature = <55000>; /* millicelsius */ | ||
| 558 | hysteresis = <2000>; /* millicelsius */ | ||
| 559 | type = "passive"; | ||
| 560 | } | ||
| 561 | lcd-trip: lcp-trip { | ||
| 562 | temperature = <53000>; /* millicelsius */ | ||
| 563 | hysteresis = <2000>; /* millicelsius */ | ||
| 564 | type = "passive"; | ||
| 565 | }; | ||
| 566 | crit-trip: crit-trip { | ||
| 567 | temperature = <68000>; /* millicelsius */ | ||
| 568 | hysteresis = <2000>; /* millicelsius */ | ||
| 569 | type = "critical"; | ||
| 570 | }; | ||
| 571 | }; | ||
| 572 | |||
| 573 | cooling-maps { | ||
| 574 | map0 { | ||
| 575 | trip = <&cpu-trip>; | ||
| 576 | cooling-device = <&cpu0 0 2>; | ||
| 577 | contribution = <55>; | ||
| 578 | }; | ||
| 579 | map1 { | ||
| 580 | trip = <&gpu-trip>; | ||
| 581 | cooling-device = <&gpu0 0 2>; | ||
| 582 | contribution = <20>; | ||
| 583 | }; | ||
| 584 | map2 { | ||
| 585 | trip = <&lcd-trip>; | ||
| 586 | cooling-device = <&lcd0 5 10>; | ||
| 587 | contribution = <15>; | ||
| 588 | }; | ||
| 589 | }; | ||
| 590 | }; | ||
| 591 | }; | ||
| 592 | |||
| 593 | The above example is a mix of previous examples, a sensor IP with several internal | ||
| 594 | sensors used to monitor different zones, one of them is composed by several sensors and | ||
| 595 | with different cooling devices. | ||
diff --git a/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt b/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt new file mode 100644 index 000000000000..7c26154b8bbb --- /dev/null +++ b/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.txt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | Allwinner SoCs High Speed Timer Controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | |||
| 5 | - compatible : should be "allwinner,sun5i-a13-hstimer" or | ||
| 6 | "allwinner,sun7i-a20-hstimer" | ||
| 7 | - reg : Specifies base physical address and size of the registers. | ||
| 8 | - interrupts : The interrupts of these timers (2 for the sun5i IP, 4 for the sun7i | ||
| 9 | one) | ||
| 10 | - clocks: phandle to the source clock (usually the AHB clock) | ||
| 11 | |||
| 12 | Example: | ||
| 13 | |||
| 14 | timer@01c60000 { | ||
| 15 | compatible = "allwinner,sun7i-a20-hstimer"; | ||
| 16 | reg = <0x01c60000 0x1000>; | ||
| 17 | interrupts = <0 51 1>, | ||
| 18 | <0 52 1>, | ||
| 19 | <0 53 1>, | ||
| 20 | <0 54 1>; | ||
| 21 | clocks = <&ahb1_gates 19>; | ||
| 22 | }; | ||
diff --git a/Documentation/devicetree/bindings/timer/nvidia,tegra20-timer.txt b/Documentation/devicetree/bindings/timer/nvidia,tegra20-timer.txt index e019fdc38773..4a864bd10d3d 100644 --- a/Documentation/devicetree/bindings/timer/nvidia,tegra20-timer.txt +++ b/Documentation/devicetree/bindings/timer/nvidia,tegra20-timer.txt | |||
| @@ -8,6 +8,8 @@ Required properties: | |||
| 8 | - compatible : should be "nvidia,tegra20-timer". | 8 | - compatible : should be "nvidia,tegra20-timer". |
| 9 | - reg : Specifies base physical address and size of the registers. | 9 | - reg : Specifies base physical address and size of the registers. |
| 10 | - interrupts : A list of 4 interrupts; one per timer channel. | 10 | - interrupts : A list of 4 interrupts; one per timer channel. |
| 11 | - clocks : Must contain one entry, for the module clock. | ||
| 12 | See ../clocks/clock-bindings.txt for details. | ||
| 11 | 13 | ||
| 12 | Example: | 14 | Example: |
| 13 | 15 | ||
| @@ -18,4 +20,5 @@ timer { | |||
| 18 | 0 1 0x04 | 20 | 0 1 0x04 |
| 19 | 0 41 0x04 | 21 | 0 41 0x04 |
| 20 | 0 42 0x04>; | 22 | 0 42 0x04>; |
| 23 | clocks = <&tegra_car 132>; | ||
| 21 | }; | 24 | }; |
diff --git a/Documentation/devicetree/bindings/timer/nvidia,tegra30-timer.txt b/Documentation/devicetree/bindings/timer/nvidia,tegra30-timer.txt index 906109d4c593..b5082a1cf461 100644 --- a/Documentation/devicetree/bindings/timer/nvidia,tegra30-timer.txt +++ b/Documentation/devicetree/bindings/timer/nvidia,tegra30-timer.txt | |||
| @@ -10,6 +10,8 @@ Required properties: | |||
| 10 | - reg : Specifies base physical address and size of the registers. | 10 | - reg : Specifies base physical address and size of the registers. |
| 11 | - interrupts : A list of 6 interrupts; one per each of timer channels 1 | 11 | - interrupts : A list of 6 interrupts; one per each of timer channels 1 |
| 12 | through 5, and one for the shared interrupt for the remaining channels. | 12 | through 5, and one for the shared interrupt for the remaining channels. |
| 13 | - clocks : Must contain one entry, for the module clock. | ||
| 14 | See ../clocks/clock-bindings.txt for details. | ||
| 13 | 15 | ||
| 14 | timer { | 16 | timer { |
| 15 | compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer"; | 17 | compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer"; |
| @@ -20,4 +22,5 @@ timer { | |||
| 20 | 0 42 0x04 | 22 | 0 42 0x04 |
| 21 | 0 121 0x04 | 23 | 0 121 0x04 |
| 22 | 0 122 0x04>; | 24 | 0 122 0x04>; |
| 25 | clocks = <&tegra_car 214>; | ||
| 23 | }; | 26 | }; |
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt index b5a86d20ee36..167d5dab9f64 100644 --- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt +++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt | |||
| @@ -31,38 +31,58 @@ Required properties: | |||
| 31 | 7: .. | 31 | 7: .. |
| 32 | i: Local Timer Interrupt n | 32 | i: Local Timer Interrupt n |
| 33 | 33 | ||
| 34 | Example 1: In this example, the system uses only the first global timer | 34 | For MCT block that uses a per-processor interrupt for local timers, such |
| 35 | interrupt generated by MCT and the remaining three global timer | 35 | as ones compatible with "samsung,exynos4412-mct", only one local timer |
| 36 | interrupts are unused. Two local timer interrupts have been | 36 | interrupt might be specified, meaning that all local timers use the same |
| 37 | specified. | 37 | per processor interrupt. |
| 38 | |||
| 39 | Example 1: In this example, the IP contains two local timers, using separate | ||
| 40 | interrupts, so two local timer interrupts have been specified, | ||
| 41 | in addition to four global timer interrupts. | ||
| 38 | 42 | ||
| 39 | mct@10050000 { | 43 | mct@10050000 { |
| 40 | compatible = "samsung,exynos4210-mct"; | 44 | compatible = "samsung,exynos4210-mct"; |
| 41 | reg = <0x10050000 0x800>; | 45 | reg = <0x10050000 0x800>; |
| 42 | interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>, | 46 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, |
| 43 | <0 42 0>, <0 48 0>; | 47 | <0 42 0>, <0 48 0>; |
| 44 | }; | 48 | }; |
| 45 | 49 | ||
| 46 | Example 2: In this example, the MCT global and local timer interrupts are | 50 | Example 2: In this example, the timer interrupts are connected to two separate |
| 47 | connected to two separate interrupt controllers. Hence, an | 51 | interrupt controllers. Hence, an interrupt-map is created to map |
| 48 | interrupt-map is created to map the interrupts to the respective | 52 | the interrupts to the respective interrupt controllers. |
| 49 | interrupt controllers. | ||
| 50 | 53 | ||
| 51 | mct@101C0000 { | 54 | mct@101C0000 { |
| 52 | compatible = "samsung,exynos4210-mct"; | 55 | compatible = "samsung,exynos4210-mct"; |
| 53 | reg = <0x101C0000 0x800>; | 56 | reg = <0x101C0000 0x800>; |
| 54 | interrupt-controller; | ||
| 55 | #interrups-cells = <2>; | ||
| 56 | interrupt-parent = <&mct_map>; | 57 | interrupt-parent = <&mct_map>; |
| 57 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | 58 | interrupts = <0>, <1>, <2>, <3>, <4>, <5>; |
| 58 | <4 0>, <5 0>; | ||
| 59 | 59 | ||
| 60 | mct_map: mct-map { | 60 | mct_map: mct-map { |
| 61 | #interrupt-cells = <2>; | 61 | #interrupt-cells = <1>; |
| 62 | #address-cells = <0>; | 62 | #address-cells = <0>; |
| 63 | #size-cells = <0>; | 63 | #size-cells = <0>; |
| 64 | interrupt-map = <0x0 0 &combiner 23 3>, | 64 | interrupt-map = <0 &gic 0 57 0>, |
| 65 | <0x4 0 &gic 0 120 0>, | 65 | <1 &gic 0 69 0>, |
| 66 | <0x5 0 &gic 0 121 0>; | 66 | <2 &combiner 12 6>, |
| 67 | <3 &combiner 12 7>, | ||
| 68 | <4 &gic 0 42 0>, | ||
| 69 | <5 &gic 0 48 0>; | ||
| 67 | }; | 70 | }; |
| 68 | }; | 71 | }; |
| 72 | |||
| 73 | Example 3: In this example, the IP contains four local timers, but using | ||
| 74 | a per-processor interrupt to handle them. Either all the local | ||
| 75 | timer interrupts can be specified, with the same interrupt specifier | ||
| 76 | value or just the first one. | ||
| 77 | |||
| 78 | mct@10050000 { | ||
| 79 | compatible = "samsung,exynos4412-mct"; | ||
| 80 | reg = <0x10050000 0x800>; | ||
| 81 | |||
| 82 | /* Both ways are possible in this case. Either: */ | ||
| 83 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
| 84 | <0 42 0>; | ||
| 85 | /* or: */ | ||
| 86 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
| 87 | <0 42 0>, <0 42 0>, <0 42 0>, <0 42 0>; | ||
| 88 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt index b4b5b7906c88..b4b5b7906c88 100644 --- a/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt | |||
diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt new file mode 100644 index 000000000000..b8b6871f116f --- /dev/null +++ b/Documentation/devicetree/bindings/usb/dwc2.txt | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | Platform DesignWare HS OTG USB 2.0 controller | ||
| 2 | ----------------------------------------------------- | ||
| 3 | |||
| 4 | Required properties: | ||
| 5 | - compatible : One of: | ||
| 6 | - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC. | ||
| 7 | - snps,dwc2: A generic DWC2 USB controller with default parameters. | ||
| 8 | - reg : Should contain 1 register range (address and length) | ||
| 9 | - interrupts : Should contain 1 interrupt | ||
| 10 | - clocks: clock provider specifier | ||
| 11 | - clock-names: shall be "otg" | ||
| 12 | Refer to clk/clock-bindings.txt for generic clock consumer properties | ||
| 13 | |||
| 14 | Optional properties: | ||
| 15 | - phys: phy provider specifier | ||
| 16 | - phy-names: shall be "device" | ||
| 17 | Refer to phy/phy-bindings.txt for generic phy consumer properties | ||
| 18 | |||
| 19 | Example: | ||
| 20 | |||
| 21 | usb@101c0000 { | ||
| 22 | compatible = "ralink,rt3050-usb, snps,dwc2"; | ||
| 23 | reg = <0x101c0000 40000>; | ||
| 24 | interrupts = <18>; | ||
| 25 | clocks = <&usb_otg_ahb_clk>; | ||
| 26 | clock-names = "otg"; | ||
| 27 | phys = <&usbphy>; | ||
| 28 | phy-names = "usb2-phy"; | ||
| 29 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/gr-udc.txt b/Documentation/devicetree/bindings/usb/gr-udc.txt new file mode 100644 index 000000000000..0c5118f7a916 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/gr-udc.txt | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | USB Peripheral Controller driver for Aeroflex Gaisler GRUSBDC. | ||
| 2 | |||
| 3 | The GRUSBDC USB Device Controller core is available in the GRLIB VHDL | ||
| 4 | IP core library. | ||
| 5 | |||
| 6 | Note: In the ordinary environment for the core, a Leon SPARC system, | ||
| 7 | these properties are built from information in the AMBA plug&play. | ||
| 8 | |||
| 9 | Required properties: | ||
| 10 | |||
| 11 | - name : Should be "GAISLER_USBDC" or "01_021" | ||
| 12 | |||
| 13 | - reg : Address and length of the register set for the device | ||
| 14 | |||
| 15 | - interrupts : Interrupt numbers for this device | ||
| 16 | |||
| 17 | Optional properties: | ||
| 18 | |||
| 19 | - epobufsizes : An array of buffer sizes for OUT endpoints. If the property is | ||
| 20 | not present, or for endpoints outside of the array, 1024 is assumed by | ||
| 21 | the driver. | ||
| 22 | |||
| 23 | - epibufsizes : An array of buffer sizes for IN endpoints. If the property is | ||
| 24 | not present, or for endpoints outside of the array, 1024 is assumed by | ||
| 25 | the driver. | ||
| 26 | |||
| 27 | For further information look in the documentation for the GLIB IP core library: | ||
| 28 | http://www.gaisler.com/products/grlib/grip.pdf | ||
diff --git a/Documentation/devicetree/bindings/usb/keystone-phy.txt b/Documentation/devicetree/bindings/usb/keystone-phy.txt new file mode 100644 index 000000000000..f37b3a86341d --- /dev/null +++ b/Documentation/devicetree/bindings/usb/keystone-phy.txt | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | TI Keystone USB PHY | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "ti,keystone-usbphy". | ||
| 5 | - #address-cells, #size-cells : should be '1' if the device has sub-nodes | ||
| 6 | with 'reg' property. | ||
| 7 | - reg : Address and length of the usb phy control register set. | ||
| 8 | |||
| 9 | The main purpose of this PHY driver is to enable the USB PHY reference clock | ||
| 10 | gate on the Keystone SOC for both the USB2 and USB3 PHY. Otherwise it is just | ||
| 11 | an NOP PHY driver. Hence this node is referenced as both the usb2 and usb3 | ||
| 12 | phy node in the USB Glue layer driver node. | ||
| 13 | |||
| 14 | usb_phy: usb_phy@2620738 { | ||
| 15 | compatible = "ti,keystone-usbphy"; | ||
| 16 | #address-cells = <1>; | ||
| 17 | #size-cells = <1>; | ||
| 18 | reg = <0x2620738 32>; | ||
| 19 | status = "disabled"; | ||
| 20 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/keystone-usb.txt b/Documentation/devicetree/bindings/usb/keystone-usb.txt new file mode 100644 index 000000000000..60527d335b58 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/keystone-usb.txt | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | TI Keystone Soc USB Controller | ||
| 2 | |||
| 3 | DWC3 GLUE | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | - compatible: should be "ti,keystone-dwc3". | ||
| 7 | - #address-cells, #size-cells : should be '1' if the device has sub-nodes | ||
| 8 | with 'reg' property. | ||
| 9 | - reg : Address and length of the register set for the USB subsystem on | ||
| 10 | the SOC. | ||
| 11 | - interrupts : The irq number of this device that is used to interrupt the | ||
| 12 | MPU. | ||
| 13 | - ranges: allows valid 1:1 translation between child's address space and | ||
| 14 | parent's address space. | ||
| 15 | - clocks: Clock IDs array as required by the controller. | ||
| 16 | - clock-names: names of clocks correseponding to IDs in the clock property. | ||
| 17 | |||
| 18 | Sub-nodes: | ||
| 19 | The dwc3 core should be added as subnode to Keystone DWC3 glue. | ||
| 20 | - dwc3 : | ||
| 21 | The binding details of dwc3 can be found in: | ||
| 22 | Documentation/devicetree/bindings/usb/dwc3.txt | ||
| 23 | |||
| 24 | Example: | ||
| 25 | usb: usb@2680000 { | ||
| 26 | compatible = "ti,keystone-dwc3"; | ||
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <1>; | ||
| 29 | reg = <0x2680000 0x10000>; | ||
| 30 | clocks = <&clkusb>; | ||
| 31 | clock-names = "usb"; | ||
| 32 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | ||
| 33 | ranges; | ||
| 34 | status = "disabled"; | ||
| 35 | |||
| 36 | dwc3@2690000 { | ||
| 37 | compatible = "synopsys,dwc3"; | ||
| 38 | reg = <0x2690000 0x70000>; | ||
| 39 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | ||
| 40 | usb-phy = <&usb_phy>, <&usb_phy>; | ||
| 41 | }; | ||
| 42 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt index df0933043a5b..3dc9140e3dfb 100644 --- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt | |||
| @@ -8,7 +8,12 @@ and additions : | |||
| 8 | Required properties : | 8 | Required properties : |
| 9 | - compatible : Should be "nvidia,tegra20-ehci". | 9 | - compatible : Should be "nvidia,tegra20-ehci". |
| 10 | - nvidia,phy : phandle of the PHY that the controller is connected to. | 10 | - nvidia,phy : phandle of the PHY that the controller is connected to. |
| 11 | - clocks : Contains a single entry which defines the USB controller's clock. | 11 | - clocks : Must contain one entry, for the module clock. |
| 12 | See ../clocks/clock-bindings.txt for details. | ||
| 13 | - resets : Must contain an entry for each entry in reset-names. | ||
| 14 | See ../reset/reset.txt for details. | ||
| 15 | - reset-names : Must include the following entries: | ||
| 16 | - usb | ||
| 12 | 17 | ||
| 13 | Optional properties: | 18 | Optional properties: |
| 14 | - nvidia,needs-double-reset : boolean is to be set for some of the Tegra20 | 19 | - nvidia,needs-double-reset : boolean is to be set for some of the Tegra20 |
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 090e5e22bd2b..c495135115cb 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt | |||
| @@ -87,6 +87,8 @@ Required properties: | |||
| 87 | e.g. USB3 PHY and SATA PHY on OMAP5. | 87 | e.g. USB3 PHY and SATA PHY on OMAP5. |
| 88 | "ti,control-phy-dra7usb2" - if it has power down register like USB2 PHY on | 88 | "ti,control-phy-dra7usb2" - if it has power down register like USB2 PHY on |
| 89 | DRA7 platform. | 89 | DRA7 platform. |
| 90 | "ti,control-phy-am437usb2" - if it has power down register like USB2 PHY on | ||
| 91 | AM437 platform. | ||
| 90 | - reg : Address and length of the register set for the device. It contains | 92 | - reg : Address and length of the register set for the device. It contains |
| 91 | the address of "otghs_control" for control-phy-otghs or "power" register | 93 | the address of "otghs_control" for control-phy-otghs or "power" register |
| 92 | for other types. | 94 | for other types. |
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 519421f28691..40ce2df0e0e9 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
| @@ -8,8 +8,10 @@ ad Avionic Design GmbH | |||
| 8 | adi Analog Devices, Inc. | 8 | adi Analog Devices, Inc. |
| 9 | aeroflexgaisler Aeroflex Gaisler AB | 9 | aeroflexgaisler Aeroflex Gaisler AB |
| 10 | ak Asahi Kasei Corp. | 10 | ak Asahi Kasei Corp. |
| 11 | allwinner Allwinner Technology Co., Ltd. | ||
| 11 | altr Altera Corp. | 12 | altr Altera Corp. |
| 12 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) | 13 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) |
| 14 | amstaos AMS-Taos Inc. | ||
| 13 | apm Applied Micro Circuits Corporation (APM) | 15 | apm Applied Micro Circuits Corporation (APM) |
| 14 | arm ARM Ltd. | 16 | arm ARM Ltd. |
| 15 | atmel Atmel Corporation | 17 | atmel Atmel Corporation |
| @@ -27,19 +29,26 @@ cortina Cortina Systems, Inc. | |||
| 27 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) | 29 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) |
| 28 | davicom DAVICOM Semiconductor, Inc. | 30 | davicom DAVICOM Semiconductor, Inc. |
| 29 | denx Denx Software Engineering | 31 | denx Denx Software Engineering |
| 32 | edt Emerging Display Technologies | ||
| 30 | emmicro EM Microelectronic | 33 | emmicro EM Microelectronic |
| 34 | epfl Ecole Polytechnique Fédérale de Lausanne | ||
| 31 | epson Seiko Epson Corp. | 35 | epson Seiko Epson Corp. |
| 32 | est ESTeem Wireless Modems | 36 | est ESTeem Wireless Modems |
| 33 | fsl Freescale Semiconductor | 37 | fsl Freescale Semiconductor |
| 34 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 38 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
| 35 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 39 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
| 36 | gmt Global Mixed-mode Technology, Inc. | 40 | gmt Global Mixed-mode Technology, Inc. |
| 41 | gumstix Gumstix, Inc. | ||
| 42 | haoyu Haoyu Microelectronic Co. Ltd. | ||
| 37 | hisilicon Hisilicon Limited. | 43 | hisilicon Hisilicon Limited. |
| 44 | honeywell Honeywell | ||
| 38 | hp Hewlett Packard | 45 | hp Hewlett Packard |
| 39 | ibm International Business Machines (IBM) | 46 | ibm International Business Machines (IBM) |
| 40 | idt Integrated Device Technologies, Inc. | 47 | idt Integrated Device Technologies, Inc. |
| 41 | img Imagination Technologies Ltd. | 48 | img Imagination Technologies Ltd. |
| 42 | intercontrol Inter Control Group | 49 | intercontrol Inter Control Group |
| 50 | isl Intersil | ||
| 51 | karo Ka-Ro electronics GmbH | ||
| 43 | lg LG Corporation | 52 | lg LG Corporation |
| 44 | linux Linux-specific binding | 53 | linux Linux-specific binding |
| 45 | lsi LSI Corp. (LSI Logic) | 54 | lsi LSI Corp. (LSI Logic) |
| @@ -48,6 +57,7 @@ maxim Maxim Integrated Products | |||
| 48 | microchip Microchip Technology Inc. | 57 | microchip Microchip Technology Inc. |
| 49 | mosaixtech Mosaix Technologies, Inc. | 58 | mosaixtech Mosaix Technologies, Inc. |
| 50 | national National Semiconductor | 59 | national National Semiconductor |
| 60 | neonode Neonode Inc. | ||
| 51 | nintendo Nintendo | 61 | nintendo Nintendo |
| 52 | nvidia NVIDIA | 62 | nvidia NVIDIA |
| 53 | nxp NXP Semiconductors | 63 | nxp NXP Semiconductors |
| @@ -57,11 +67,12 @@ phytec PHYTEC Messtechnik GmbH | |||
| 57 | picochip Picochip Ltd | 67 | picochip Picochip Ltd |
| 58 | powervr PowerVR (deprecated, use img) | 68 | powervr PowerVR (deprecated, use img) |
| 59 | qca Qualcomm Atheros, Inc. | 69 | qca Qualcomm Atheros, Inc. |
| 60 | qcom Qualcomm, Inc. | 70 | qcom Qualcomm Technologies, Inc |
| 61 | ralink Mediatek/Ralink Technology Corp. | 71 | ralink Mediatek/Ralink Technology Corp. |
| 62 | ramtron Ramtron International | 72 | ramtron Ramtron International |
| 63 | realtek Realtek Semiconductor Corp. | 73 | realtek Realtek Semiconductor Corp. |
| 64 | renesas Renesas Electronics Corporation | 74 | renesas Renesas Electronics Corporation |
| 75 | rockchip Fuzhou Rockchip Electronics Co., Ltd | ||
| 65 | samsung Samsung Semiconductor | 76 | samsung Samsung Semiconductor |
| 66 | sbs Smart Battery System | 77 | sbs Smart Battery System |
| 67 | schindler Schindler | 78 | schindler Schindler |
| @@ -70,10 +81,12 @@ silabs Silicon Laboratories | |||
| 70 | simtek | 81 | simtek |
| 71 | sirf SiRF Technology, Inc. | 82 | sirf SiRF Technology, Inc. |
| 72 | snps Synopsys, Inc. | 83 | snps Synopsys, Inc. |
| 84 | spansion Spansion Inc. | ||
| 73 | st STMicroelectronics | 85 | st STMicroelectronics |
| 74 | ste ST-Ericsson | 86 | ste ST-Ericsson |
| 75 | stericsson ST-Ericsson | 87 | stericsson ST-Ericsson |
| 76 | ti Texas Instruments | 88 | ti Texas Instruments |
| 89 | tlm Trusted Logic Mobility | ||
| 77 | toshiba Toshiba Corporation | 90 | toshiba Toshiba Corporation |
| 78 | toumaz Toumaz | 91 | toumaz Toumaz |
| 79 | v3 V3 Semiconductor | 92 | v3 V3 Semiconductor |
diff --git a/Documentation/devicetree/bindings/video/ssd1289fb.txt b/Documentation/devicetree/bindings/video/ssd1289fb.txt new file mode 100644 index 000000000000..4fcd5e68cb6e --- /dev/null +++ b/Documentation/devicetree/bindings/video/ssd1289fb.txt | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | * Solomon SSD1289 Framebuffer Driver | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "solomon,ssd1289fb". The only supported bus for | ||
| 5 | now is lbc. | ||
| 6 | - reg: Should contain address of the controller on the LBC bus. The detail | ||
| 7 | was described in Documentation/devicetree/bindings/powerpc/fsl/lbc.txt | ||
| 8 | |||
| 9 | Examples: | ||
| 10 | display@2,0 { | ||
| 11 | compatible = "solomon,ssd1289fb"; | ||
| 12 | reg = <0x2 0x0000 0x0004>; | ||
| 13 | }; | ||
diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt index fcdd48f7dcff..f90e294d7631 100644 --- a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt | |||
| @@ -9,11 +9,37 @@ Required properties: | |||
| 9 | 9 | ||
| 10 | Optional properties: | 10 | Optional properties: |
| 11 | - timeout-sec: contains the watchdog timeout in seconds. | 11 | - timeout-sec: contains the watchdog timeout in seconds. |
| 12 | - interrupts : Should contain WDT interrupt. | ||
| 13 | - atmel,max-heartbeat-sec : Should contain the maximum heartbeat value in | ||
| 14 | seconds. This value should be less or equal to 16. It is used to | ||
| 15 | compute the WDV field. | ||
| 16 | - atmel,min-heartbeat-sec : Should contain the minimum heartbeat value in | ||
| 17 | seconds. This value must be smaller than the max-heartbeat-sec value. | ||
| 18 | It is used to compute the WDD field. | ||
| 19 | - atmel,watchdog-type : Should be "hardware" or "software". Hardware watchdog | ||
| 20 | use the at91 watchdog reset. Software watchdog use the watchdog | ||
| 21 | interrupt to trigger a software reset. | ||
| 22 | - atmel,reset-type : Should be "proc" or "all". | ||
| 23 | "all" : assert peripherals and processor reset signals | ||
| 24 | "proc" : assert the processor reset signal | ||
| 25 | This is valid only when using "hardware" watchdog. | ||
| 26 | - atmel,disable : Should be present if you want to disable the watchdog. | ||
| 27 | - atmel,idle-halt : Should be present if you want to stop the watchdog when | ||
| 28 | entering idle state. | ||
| 29 | - atmel,dbg-halt : Should be present if you want to stop the watchdog when | ||
| 30 | entering debug state. | ||
| 12 | 31 | ||
| 13 | Example: | 32 | Example: |
| 14 | |||
| 15 | watchdog@fffffd40 { | 33 | watchdog@fffffd40 { |
| 16 | compatible = "atmel,at91sam9260-wdt"; | 34 | compatible = "atmel,at91sam9260-wdt"; |
| 17 | reg = <0xfffffd40 0x10>; | 35 | reg = <0xfffffd40 0x10>; |
| 18 | timeout-sec = <10>; | 36 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; |
| 37 | timeout-sec = <15>; | ||
| 38 | atmel,watchdog-type = "hardware"; | ||
| 39 | atmel,reset-type = "all"; | ||
| 40 | atmel,dbg-halt; | ||
| 41 | atmel,idle-halt; | ||
| 42 | atmel,max-heartbeat-sec = <16>; | ||
| 43 | atmel,min-heartbeat-sec = <0>; | ||
| 44 | status = "okay"; | ||
| 19 | }; | 45 | }; |
diff --git a/Documentation/devicetree/bindings/watchdog/davinci-wdt.txt b/Documentation/devicetree/bindings/watchdog/davinci-wdt.txt index 75558ccd9a05..e60b9a13bdcb 100644 --- a/Documentation/devicetree/bindings/watchdog/davinci-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/davinci-wdt.txt | |||
| @@ -1,12 +1,24 @@ | |||
| 1 | DaVinci Watchdog Timer (WDT) Controller | 1 | Texas Instruments DaVinci/Keystone Watchdog Timer (WDT) Controller |
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible : Should be "ti,davinci-wdt" | 4 | - compatible : Should be "ti,davinci-wdt", "ti,keystone-wdt" |
| 5 | - reg : Should contain WDT registers location and length | 5 | - reg : Should contain WDT registers location and length |
| 6 | 6 | ||
| 7 | Optional properties: | ||
| 8 | - timeout-sec : Contains the watchdog timeout in seconds | ||
| 9 | - clocks : the clock feeding the watchdog timer. | ||
| 10 | Needed if platform uses clocks. | ||
| 11 | See clock-bindings.txt | ||
| 12 | |||
| 13 | Documentation: | ||
| 14 | Davinci DM646x - http://www.ti.com/lit/ug/spruer5b/spruer5b.pdf | ||
| 15 | Keystone - http://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf | ||
| 16 | |||
| 7 | Examples: | 17 | Examples: |
| 8 | 18 | ||
| 9 | wdt: wdt@2320000 { | 19 | wdt: wdt@2320000 { |
| 10 | compatible = "ti,davinci-wdt"; | 20 | compatible = "ti,davinci-wdt"; |
| 11 | reg = <0x02320000 0x80>; | 21 | reg = <0x02320000 0x80>; |
| 22 | timeout-sec = <30>; | ||
| 23 | clocks = <&clkwdtimer0>; | ||
| 12 | }; | 24 | }; |
diff --git a/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt b/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt new file mode 100644 index 000000000000..37afec194949 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/gpio-wdt.txt | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | * GPIO-controlled Watchdog | ||
| 2 | |||
| 3 | Required Properties: | ||
| 4 | - compatible: Should contain "linux,wdt-gpio". | ||
| 5 | - gpios: From common gpio binding; gpio connection to WDT reset pin. | ||
| 6 | - hw_algo: The algorithm used by the driver. Should be one of the | ||
| 7 | following values: | ||
| 8 | - toggle: Either a high-to-low or a low-to-high transition clears | ||
| 9 | the WDT counter. The watchdog timer is disabled when GPIO is | ||
| 10 | left floating or connected to a three-state buffer. | ||
| 11 | - level: Low or high level starts counting WDT timeout, | ||
| 12 | the opposite level disables the WDT. Active level is determined | ||
| 13 | by the GPIO flags. | ||
| 14 | - hw_margin_ms: Maximum time to reset watchdog circuit (milliseconds). | ||
| 15 | |||
| 16 | Example: | ||
| 17 | watchdog: watchdog { | ||
| 18 | /* ADM706 */ | ||
| 19 | compatible = "linux,wdt-gpio"; | ||
| 20 | gpios = <&gpio3 9 GPIO_ACTIVE_LOW>; | ||
| 21 | hw_algo = "toggle"; | ||
| 22 | hw_margin_ms = <1600>; | ||
| 23 | }; | ||
diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt index 2aa486cc1ff6..cfff37511aac 100644 --- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt | |||
| @@ -5,10 +5,29 @@ after a preset amount of time during which the WDT reset event has not | |||
| 5 | occurred. | 5 | occurred. |
| 6 | 6 | ||
| 7 | Required properties: | 7 | Required properties: |
| 8 | - compatible : should be "samsung,s3c2410-wdt" | 8 | - compatible : should be one among the following |
| 9 | (a) "samsung,s3c2410-wdt" for Exynos4 and previous SoCs | ||
| 10 | (b) "samsung,exynos5250-wdt" for Exynos5250 | ||
| 11 | (c) "samsung,exynos5420-wdt" for Exynos5420 | ||
| 12 | |||
| 9 | - reg : base physical address of the controller and length of memory mapped | 13 | - reg : base physical address of the controller and length of memory mapped |
| 10 | region. | 14 | region. |
| 11 | - interrupts : interrupt number to the cpu. | 15 | - interrupts : interrupt number to the cpu. |
| 16 | - samsung,syscon-phandle : reference to syscon node (This property required only | ||
| 17 | in case of compatible being "samsung,exynos5250-wdt" or "samsung,exynos5420-wdt". | ||
| 18 | In case of Exynos5250 and 5420 this property points to syscon node holding the PMU | ||
| 19 | base address) | ||
| 12 | 20 | ||
| 13 | Optional properties: | 21 | Optional properties: |
| 14 | - timeout-sec : contains the watchdog timeout in seconds. | 22 | - timeout-sec : contains the watchdog timeout in seconds. |
| 23 | |||
| 24 | Example: | ||
| 25 | |||
| 26 | watchdog@101D0000 { | ||
| 27 | compatible = "samsung,exynos5250-wdt"; | ||
| 28 | reg = <0x101D0000 0x100>; | ||
| 29 | interrupts = <0 42 0>; | ||
| 30 | clocks = <&clock 336>; | ||
| 31 | clock-names = "watchdog"; | ||
| 32 | samsung,syscon-phandle = <&pmu_syscon>; | ||
| 33 | }; | ||
