diff options
author | Arnd Bergmann <arnd@arndb.de> | 2015-04-13 19:18:44 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2015-04-13 19:18:44 -0400 |
commit | 9705feacb778d2aa8bb868e8a9ab40557f7f7043 (patch) | |
tree | 1b375461706efeebd40ca653cf771e2fb975c08e /Documentation/devicetree | |
parent | 643ee0d50a7392671c0488912cdbb37549ac4cc7 (diff) | |
parent | 8e047c120fb2ccb7b7aba8f5e9224e463f86bebc (diff) |
Merge tag 'imx-dt-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/late
Pull "The i.MX device tree updates for 4.1" from Shawn Guo:
- Convert GPC controller to use stacked interrupt domains
- Add power domain descriptions for i.MX6 platforms
- Improve i.MX25 pin function defines
- Disable PWM devices in <soc>.dtsi by default and enable it at board
level dts where the device is actually available.
- Define labels for SNVS RTC device to ease the board description,
where an external RTC is available.
- Add dr_mode host setting to all i.MX host-only USB instances
- Support Miscellaneous System Control Module (MSCM) for VF610
- Add initial i.MX6SL WaRP Board support
- Add i.MX6SX SDB revision B board support
- A bunch of imx28-apf28dev board updates, including gpio polarity
correction and CAN, AUART device support.
- SolidRun iMX6 platform updates: dual-license of GPLv2/X11, PWM
setup, PCF8523 RTC, GPIO key and SGTL5000 audio support.
- A number of random device additions for boards: SPI and CAN for
vf-colibri, MAX7310 GPIO expander for imx6qdl-sabreauto and LCD
support for imx25-pdk.
Note: Branch imx/cleanup was merged as the base to solve conflict on
imx25 iomux header. Branch imx/soc was merged as the base to solve
conflict on arch/arm/mach-imx/gpc.c. And Jason Cooper's irqchip/vybrid
branch was pulled into the base as a run-time dependency.
* tag 'imx-dt-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (69 commits)
ARM: dts: hummingboard: add sgtl5000 support for Hummingboard Pro
ARM: dts: imx25-pinfunc: Add several pinfunctions
ARM: dts: vf610: fix missing irqs
ARM: dts: cubox: Map gpio-keys to gpio3 8
ARM: dts: hummingboard: Setup pwm lines
ARM: dts: hummingboard: enable PCF8523 RTC support
ARM: dts: Re-license SolidRun iMX6 platform DT GPL v2/X11
ARM: dts: imx28: add alternative pinmuxing for spi3
ARM: dts: imx6sx: Add label snvs_rtc
ARM: dts: imx6sl: Add label snvs_rtc
ARM: imx6: Warn when an old DT is detected
ARM: imx6: Allow GPC interrupts affinity to be changed
ARM: imx6qdl-sabreauto.dtsi: add max7310 support
ARM: dts: imx6sl-warp: Add BCM4330 support
ARM: dts: imx28-apf28dev: add wakeup function to user button
ARM: dts: imx28-apf28dev: fix user button polarity
ARM: dts: imx25-pinfunc: remove input values for pinfuncs without input register
ARM: dts: vf610: add Miscellaneous System Control Module (MSCM)
ARM: dts: imx6sl-warp: Pass 'bus-width' property
ARM: dts: imx6qdl: disable PWMs by default
...
Diffstat (limited to 'Documentation/devicetree')
3 files changed, 106 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt b/Documentation/devicetree/bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt new file mode 100644 index 000000000000..44aa3c451ccf --- /dev/null +++ b/Documentation/devicetree/bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | Freescale Vybrid Miscellaneous System Control - CPU Configuration | ||
2 | |||
3 | The MSCM IP contains multiple sub modules, this binding describes the first | ||
4 | block of registers which contains CPU configuration information. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: "fsl,vf610-mscm-cpucfg", "syscon" | ||
8 | - reg: the register range of the MSCM CPU configuration registers | ||
9 | |||
10 | Example: | ||
11 | mscm_cpucfg: cpucfg@40001000 { | ||
12 | compatible = "fsl,vf610-mscm-cpucfg", "syscon"; | ||
13 | reg = <0x40001000 0x800>; | ||
14 | } | ||
diff --git a/Documentation/devicetree/bindings/arm/freescale/fsl,vf610-mscm-ir.txt b/Documentation/devicetree/bindings/arm/freescale/fsl,vf610-mscm-ir.txt new file mode 100644 index 000000000000..669808b2af49 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/freescale/fsl,vf610-mscm-ir.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | Freescale Vybrid Miscellaneous System Control - Interrupt Router | ||
2 | |||
3 | The MSCM IP contains multiple sub modules, this binding describes the second | ||
4 | block of registers which control the interrupt router. The interrupt router | ||
5 | allows to configure the recipient of each peripheral interrupt. Furthermore | ||
6 | it controls the directed processor interrupts. The module is available in all | ||
7 | Vybrid SoC's but is only really useful in dual core configurations (VF6xx | ||
8 | which comes with a Cortex-A5/Cortex-M4 combination). | ||
9 | |||
10 | Required properties: | ||
11 | - compatible: "fsl,vf610-mscm-ir" | ||
12 | - reg: the register range of the MSCM Interrupt Router | ||
13 | - fsl,cpucfg: The handle to the MSCM CPU configuration node, required | ||
14 | to get the current CPU ID | ||
15 | - interrupt-controller: Identifies the node as an interrupt controller | ||
16 | - #interrupt-cells: Two cells, interrupt number and cells. | ||
17 | The hardware interrupt number according to interrupt | ||
18 | assignment of the interrupt router is required. | ||
19 | Flags get passed only when using GIC as parent. Flags | ||
20 | encoding as documented by the GIC bindings. | ||
21 | - interrupt-parent: Should be the phandle for the interrupt controller of | ||
22 | the CPU the device tree is intended to be used on. This | ||
23 | is either the node of the GIC or NVIC controller. | ||
24 | |||
25 | Example: | ||
26 | mscm_ir: interrupt-controller@40001800 { | ||
27 | compatible = "fsl,vf610-mscm-ir"; | ||
28 | reg = <0x40001800 0x400>; | ||
29 | fsl,cpucfg = <&mscm_cpucfg>; | ||
30 | interrupt-controller; | ||
31 | #interrupt-cells = <2>; | ||
32 | interrupt-parent = <&intc>; | ||
33 | } | ||
diff --git a/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt b/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt new file mode 100644 index 000000000000..65cc0345747d --- /dev/null +++ b/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt | |||
@@ -0,0 +1,59 @@ | |||
1 | Freescale i.MX General Power Controller | ||
2 | ======================================= | ||
3 | |||
4 | The i.MX6Q General Power Control (GPC) block contains DVFS load tracking | ||
5 | counters and Power Gating Control (PGC) for the CPU and PU (GPU/VPU) power | ||
6 | domains. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: Should be "fsl,imx6q-gpc" or "fsl,imx6sl-gpc" | ||
10 | - reg: should be register base and length as documented in the | ||
11 | datasheet | ||
12 | - interrupts: Should contain GPC interrupt request 1 | ||
13 | - pu-supply: Link to the LDO regulator powering the PU power domain | ||
14 | - clocks: Clock phandles to devices in the PU power domain that need | ||
15 | to be enabled during domain power-up for reset propagation. | ||
16 | - #power-domain-cells: Should be 1, see below: | ||
17 | |||
18 | The gpc node is a power-controller as documented by the generic power domain | ||
19 | bindings in Documentation/devicetree/bindings/power/power_domain.txt. | ||
20 | |||
21 | Example: | ||
22 | |||
23 | gpc: gpc@020dc000 { | ||
24 | compatible = "fsl,imx6q-gpc"; | ||
25 | reg = <0x020dc000 0x4000>; | ||
26 | interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>, | ||
27 | <0 90 IRQ_TYPE_LEVEL_HIGH>; | ||
28 | pu-supply = <®_pu>; | ||
29 | clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>, | ||
30 | <&clks IMX6QDL_CLK_GPU3D_SHADER>, | ||
31 | <&clks IMX6QDL_CLK_GPU2D_CORE>, | ||
32 | <&clks IMX6QDL_CLK_GPU2D_AXI>, | ||
33 | <&clks IMX6QDL_CLK_OPENVG_AXI>, | ||
34 | <&clks IMX6QDL_CLK_VPU_AXI>; | ||
35 | #power-domain-cells = <1>; | ||
36 | }; | ||
37 | |||
38 | |||
39 | Specifying power domain for IP modules | ||
40 | ====================================== | ||
41 | |||
42 | IP cores belonging to a power domain should contain a 'power-domains' property | ||
43 | that is a phandle pointing to the gpc device node and a DOMAIN_INDEX specifying | ||
44 | the power domain the device belongs to. | ||
45 | |||
46 | Example of a device that is part of the PU power domain: | ||
47 | |||
48 | vpu: vpu@02040000 { | ||
49 | reg = <0x02040000 0x3c000>; | ||
50 | /* ... */ | ||
51 | power-domains = <&gpc 1>; | ||
52 | /* ... */ | ||
53 | }; | ||
54 | |||
55 | The following DOMAIN_INDEX values are valid for i.MX6Q: | ||
56 | ARM_DOMAIN 0 | ||
57 | PU_DOMAIN 1 | ||
58 | The following additional DOMAIN_INDEX value is valid for i.MX6SL: | ||
59 | DISPLAY_DOMAIN 2 | ||