diff options
author | Olof Johansson <olof@lixom.net> | 2013-04-11 07:04:38 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2013-04-11 07:04:47 -0400 |
commit | 4f779ad9939038821202ac5632bbb9610fbac124 (patch) | |
tree | b33c917786b9eb6ad4fbd6b18034b0cd23c3e54c | |
parent | 35db05bb9d8818b33e1e206de70c3741580bf35a (diff) | |
parent | 161e89a689bb88004b757986eefda2402448eef7 (diff) |
Merge tag 'omap-for-v3.10/dt-signed-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt2
From Tony Lindgren:
Device tree updates for omaps via Benoit Cousson <b-cousson@ti.com>.
Note that the branch has dependencies to two other branches:
- omap-devel-b-for-3.10 from Paul to get the AM33xx missing
hwmod and thus avoid a regression with Santosh's hwmod
cleanup including in this DT series [1]. It avoids breaking
bisect if this series is merged before Paul's fixes.
- omap-for-v3.10/usb branch to avoid nasty merge conflict in
omap3.dtsi and omap4.dtsi due to the DTS patches contained
in the USB branch because of a screw up by the unnamed person
typing this signed tag based on Benoit's comments.
[1] https://patchwork.kernel.org/patch/2366291/
* tag 'omap-for-v3.10/dt-signed-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (69 commits)
ARM/dts: OMAP3: fix pinctrl-single configuration
ARM: dts: Add OMAP3430 SDP NOR flash memory binding
ARM: dts: Add NOR flash bindings for OMAP2420 H4
ARM: dts: Update OMAP3430 SDP NAND and ONENAND properties
ARM: dts: OMAP2+: Identify GPIO banks that are always powered
ARM: OMAP2+: Populate DMTIMER errata when using device-tree
ARM: dts: OMAP2+: Update DMTIMER compatibility property
ARM: OMAP: Add function to request timer by node
ARM: OMAP: Force dmtimer restore if context loss is not detectable
ARM: OMAP: Simplify dmtimer context-loss handling
ARM: dts: AM33XX: Corrects typo in interrupt field in SPI node
ARM: dts: OMAP4460: Add CPU OPP table
ARM: dts: omap4-panda: move generic sections to panda-common
ARM: dts: OMAP443x: Add CPU OPP table
ARM: dts: OMAP3: use twl4030 vdd1 regulator for CPU
ARM: dts: OMAP36xx: Add CPU OPP table
ARM: dts: OMAP34xx/35xx: Add CPU OPP table
Documentation: dt: gpio-omap: Move interrupt-controller from #interrupt-cells description
ARM: OMAP2+: hwmod: Don't call _init_mpu_rt_base if no sysc
ARM: OMAP2+: hwmod: extract module address space from DT blob
...
Signed-off-by: Olof Johansson <olof@lixom.net>
46 files changed, 2172 insertions, 460 deletions
diff --git a/Documentation/devicetree/bindings/arm/omap/l3-noc.txt b/Documentation/devicetree/bindings/arm/omap/l3-noc.txt index 6888a5efc860..c0105de55cbd 100644 --- a/Documentation/devicetree/bindings/arm/omap/l3-noc.txt +++ b/Documentation/devicetree/bindings/arm/omap/l3-noc.txt | |||
@@ -6,6 +6,7 @@ provided by Arteris. | |||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : Should be "ti,omap3-l3-smx" for OMAP3 family | 7 | - compatible : Should be "ti,omap3-l3-smx" for OMAP3 family |
8 | Should be "ti,omap4-l3-noc" for OMAP4 family | 8 | Should be "ti,omap4-l3-noc" for OMAP4 family |
9 | - reg: Contains L3 register address range for each noc domain. | ||
9 | - ti,hwmods: "l3_main_1", ... One hwmod for each noc domain. | 10 | - ti,hwmods: "l3_main_1", ... One hwmod for each noc domain. |
10 | 11 | ||
11 | Examples: | 12 | Examples: |
diff --git a/Documentation/devicetree/bindings/arm/omap/timer.txt b/Documentation/devicetree/bindings/arm/omap/timer.txt index 8732d4d41f8b..d02e27c764ec 100644 --- a/Documentation/devicetree/bindings/arm/omap/timer.txt +++ b/Documentation/devicetree/bindings/arm/omap/timer.txt | |||
@@ -1,7 +1,20 @@ | |||
1 | OMAP Timer bindings | 1 | OMAP Timer bindings |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Must be "ti,omap2-timer" for OMAP2+ controllers. | 4 | - compatible: Should be set to one of the below. Please note that |
5 | OMAP44xx devices have timer instances that are 100% | ||
6 | register compatible with OMAP3xxx devices as well as | ||
7 | newer timers that are not 100% register compatible. | ||
8 | So for OMAP44xx devices timer instances may use | ||
9 | different compatible strings. | ||
10 | |||
11 | ti,omap2420-timer (applicable to OMAP24xx devices) | ||
12 | ti,omap3430-timer (applicable to OMAP3xxx/44xx devices) | ||
13 | ti,omap4430-timer (applicable to OMAP44xx devices) | ||
14 | ti,omap5430-timer (applicable to OMAP543x devices) | ||
15 | ti,am335x-timer (applicable to AM335x devices) | ||
16 | ti,am335x-timer-1ms (applicable to AM335x devices) | ||
17 | |||
5 | - reg: Contains timer register address range (base address and | 18 | - reg: Contains timer register address range (base address and |
6 | length). | 19 | length). |
7 | - interrupts: Contains the interrupt information for the timer. The | 20 | - interrupts: Contains the interrupt information for the timer. The |
@@ -22,7 +35,7 @@ Optional properties: | |||
22 | Example: | 35 | Example: |
23 | 36 | ||
24 | timer12: timer@48304000 { | 37 | timer12: timer@48304000 { |
25 | compatible = "ti,omap2-timer"; | 38 | compatible = "ti,omap3430-timer"; |
26 | reg = <0x48304000 0x400>; | 39 | reg = <0x48304000 0x400>; |
27 | interrupts = <95>; | 40 | interrupts = <95>; |
28 | ti,hwmods = "timer12" | 41 | ti,hwmods = "timer12" |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-omap.txt b/Documentation/devicetree/bindings/gpio/gpio-omap.txt index bff51a2fee1e..a56e3a53a360 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-omap.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-omap.txt | |||
@@ -5,12 +5,12 @@ Required properties: | |||
5 | - "ti,omap2-gpio" for OMAP2 controllers | 5 | - "ti,omap2-gpio" for OMAP2 controllers |
6 | - "ti,omap3-gpio" for OMAP3 controllers | 6 | - "ti,omap3-gpio" for OMAP3 controllers |
7 | - "ti,omap4-gpio" for OMAP4 controllers | 7 | - "ti,omap4-gpio" for OMAP4 controllers |
8 | - gpio-controller : Marks the device node as a GPIO controller. | ||
8 | - #gpio-cells : Should be two. | 9 | - #gpio-cells : Should be two. |
9 | - first cell is the pin number | 10 | - first cell is the pin number |
10 | - second cell is used to specify optional parameters (unused) | 11 | - second cell is used to specify optional parameters (unused) |
11 | - gpio-controller : Marks the device node as a GPIO controller. | 12 | - interrupt-controller: Mark the device node as an interrupt controller. |
12 | - #interrupt-cells : Should be 2. | 13 | - #interrupt-cells : Should be 2. |
13 | - interrupt-controller: Mark the device node as an interrupt controller | ||
14 | The first cell is the GPIO number. | 14 | The first cell is the GPIO number. |
15 | The second cell is used to specify flags: | 15 | The second cell is used to specify flags: |
16 | bits[3:0] trigger type and level flags: | 16 | bits[3:0] trigger type and level flags: |
@@ -29,8 +29,8 @@ Example: | |||
29 | gpio4: gpio4 { | 29 | gpio4: gpio4 { |
30 | compatible = "ti,omap4-gpio"; | 30 | compatible = "ti,omap4-gpio"; |
31 | ti,hwmods = "gpio4"; | 31 | ti,hwmods = "gpio4"; |
32 | #gpio-cells = <2>; | ||
33 | gpio-controller; | 32 | gpio-controller; |
34 | #interrupt-cells = <2>; | 33 | #gpio-cells = <2>; |
35 | interrupt-controller; | 34 | interrupt-controller; |
35 | #interrupt-cells = <2>; | ||
36 | }; | 36 | }; |
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 1ef0ce71f8fa..abce25684abc 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt | |||
@@ -18,6 +18,7 @@ OMAP MUSB GLUE | |||
18 | represents PERIPHERAL. | 18 | represents PERIPHERAL. |
19 | - power : Should be "50". This signifies the controller can supply upto | 19 | - power : Should be "50". This signifies the controller can supply upto |
20 | 100mA when operating in host mode. | 20 | 100mA when operating in host mode. |
21 | - usb-phy : the phandle for the PHY device | ||
21 | 22 | ||
22 | Optional properties: | 23 | Optional properties: |
23 | - ctrl-module : phandle of the control module this glue uses to write to | 24 | - ctrl-module : phandle of the control module this glue uses to write to |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 9c6255884cbb..f4c2dde779ba 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -115,10 +115,14 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ | |||
115 | imx28-tx28.dtb | 115 | imx28-tx28.dtb |
116 | dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb | 116 | dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb |
117 | dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | 117 | dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ |
118 | omap3430-sdp.dtb \ | ||
118 | omap3-beagle.dtb \ | 119 | omap3-beagle.dtb \ |
120 | omap3-devkit8000.dtb \ | ||
119 | omap3-beagle-xm.dtb \ | 121 | omap3-beagle-xm.dtb \ |
120 | omap3-evm.dtb \ | 122 | omap3-evm.dtb \ |
121 | omap3-tobi.dtb \ | 123 | omap3-tobi.dtb \ |
124 | omap3-igep0020.dtb \ | ||
125 | omap3-igep0030.dtb \ | ||
122 | omap4-panda.dtb \ | 126 | omap4-panda.dtb \ |
123 | omap4-panda-a4.dtb \ | 127 | omap4-panda-a4.dtb \ |
124 | omap4-panda-es.dtb \ | 128 | omap4-panda-es.dtb \ |
diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 11b240c5d323..5302f79c05b7 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts | |||
@@ -43,7 +43,7 @@ | |||
43 | status = "okay"; | 43 | status = "okay"; |
44 | }; | 44 | }; |
45 | 45 | ||
46 | i2c1: i2c@44e0b000 { | 46 | i2c0: i2c@44e0b000 { |
47 | status = "okay"; | 47 | status = "okay"; |
48 | clock-frequency = <400000>; | 48 | clock-frequency = <400000>; |
49 | 49 | ||
@@ -59,27 +59,27 @@ | |||
59 | 59 | ||
60 | led@2 { | 60 | led@2 { |
61 | label = "beaglebone:green:heartbeat"; | 61 | label = "beaglebone:green:heartbeat"; |
62 | gpios = <&gpio2 21 0>; | 62 | gpios = <&gpio1 21 0>; |
63 | linux,default-trigger = "heartbeat"; | 63 | linux,default-trigger = "heartbeat"; |
64 | default-state = "off"; | 64 | default-state = "off"; |
65 | }; | 65 | }; |
66 | 66 | ||
67 | led@3 { | 67 | led@3 { |
68 | label = "beaglebone:green:mmc0"; | 68 | label = "beaglebone:green:mmc0"; |
69 | gpios = <&gpio2 22 0>; | 69 | gpios = <&gpio1 22 0>; |
70 | linux,default-trigger = "mmc0"; | 70 | linux,default-trigger = "mmc0"; |
71 | default-state = "off"; | 71 | default-state = "off"; |
72 | }; | 72 | }; |
73 | 73 | ||
74 | led@4 { | 74 | led@4 { |
75 | label = "beaglebone:green:usr2"; | 75 | label = "beaglebone:green:usr2"; |
76 | gpios = <&gpio2 23 0>; | 76 | gpios = <&gpio1 23 0>; |
77 | default-state = "off"; | 77 | default-state = "off"; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | led@5 { | 80 | led@5 { |
81 | label = "beaglebone:green:usr3"; | 81 | label = "beaglebone:green:usr3"; |
82 | gpios = <&gpio2 24 0>; | 82 | gpios = <&gpio1 24 0>; |
83 | default-state = "off"; | 83 | default-state = "off"; |
84 | }; | 84 | }; |
85 | }; | 85 | }; |
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts index d6496440fcea..0423298a26fe 100644 --- a/arch/arm/boot/dts/am335x-evm.dts +++ b/arch/arm/boot/dts/am335x-evm.dts | |||
@@ -51,7 +51,7 @@ | |||
51 | status = "okay"; | 51 | status = "okay"; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | i2c1: i2c@44e0b000 { | 54 | i2c0: i2c@44e0b000 { |
55 | status = "okay"; | 55 | status = "okay"; |
56 | clock-frequency = <400000>; | 56 | clock-frequency = <400000>; |
57 | 57 | ||
@@ -60,7 +60,7 @@ | |||
60 | }; | 60 | }; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | i2c2: i2c@4802a000 { | 63 | i2c1: i2c@4802a000 { |
64 | status = "okay"; | 64 | status = "okay"; |
65 | clock-frequency = <100000>; | 65 | clock-frequency = <100000>; |
66 | 66 | ||
@@ -123,12 +123,12 @@ | |||
123 | debounce-delay-ms = <5>; | 123 | debounce-delay-ms = <5>; |
124 | col-scan-delay-us = <2>; | 124 | col-scan-delay-us = <2>; |
125 | 125 | ||
126 | row-gpios = <&gpio2 25 0 /* Bank1, pin25 */ | 126 | row-gpios = <&gpio1 25 0 /* Bank1, pin25 */ |
127 | &gpio2 26 0 /* Bank1, pin26 */ | 127 | &gpio1 26 0 /* Bank1, pin26 */ |
128 | &gpio2 27 0>; /* Bank1, pin27 */ | 128 | &gpio1 27 0>; /* Bank1, pin27 */ |
129 | 129 | ||
130 | col-gpios = <&gpio2 21 0 /* Bank1, pin21 */ | 130 | col-gpios = <&gpio1 21 0 /* Bank1, pin21 */ |
131 | &gpio2 22 0>; /* Bank1, pin22 */ | 131 | &gpio1 22 0>; /* Bank1, pin22 */ |
132 | 132 | ||
133 | linux,keymap = <0x0000008b /* MENU */ | 133 | linux,keymap = <0x0000008b /* MENU */ |
134 | 0x0100009e /* BACK */ | 134 | 0x0100009e /* BACK */ |
@@ -147,14 +147,14 @@ | |||
147 | switch@9 { | 147 | switch@9 { |
148 | label = "volume-up"; | 148 | label = "volume-up"; |
149 | linux,code = <115>; | 149 | linux,code = <115>; |
150 | gpios = <&gpio1 2 1>; | 150 | gpios = <&gpio0 2 1>; |
151 | gpio-key,wakeup; | 151 | gpio-key,wakeup; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | switch@10 { | 154 | switch@10 { |
155 | label = "volume-down"; | 155 | label = "volume-down"; |
156 | linux,code = <114>; | 156 | linux,code = <114>; |
157 | gpios = <&gpio1 3 1>; | 157 | gpios = <&gpio0 3 1>; |
158 | gpio-key,wakeup; | 158 | gpio-key,wakeup; |
159 | }; | 159 | }; |
160 | }; | 160 | }; |
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts index f5a6162a4ff2..f67c360844f4 100644 --- a/arch/arm/boot/dts/am335x-evmsk.dts +++ b/arch/arm/boot/dts/am335x-evmsk.dts | |||
@@ -58,7 +58,7 @@ | |||
58 | status = "okay"; | 58 | status = "okay"; |
59 | }; | 59 | }; |
60 | 60 | ||
61 | i2c1: i2c@44e0b000 { | 61 | i2c0: i2c@44e0b000 { |
62 | status = "okay"; | 62 | status = "okay"; |
63 | clock-frequency = <400000>; | 63 | clock-frequency = <400000>; |
64 | 64 | ||
@@ -115,26 +115,26 @@ | |||
115 | 115 | ||
116 | led@1 { | 116 | led@1 { |
117 | label = "evmsk:green:usr0"; | 117 | label = "evmsk:green:usr0"; |
118 | gpios = <&gpio2 4 0>; | 118 | gpios = <&gpio1 4 0>; |
119 | default-state = "off"; | 119 | default-state = "off"; |
120 | }; | 120 | }; |
121 | 121 | ||
122 | led@2 { | 122 | led@2 { |
123 | label = "evmsk:green:usr1"; | 123 | label = "evmsk:green:usr1"; |
124 | gpios = <&gpio2 5 0>; | 124 | gpios = <&gpio1 5 0>; |
125 | default-state = "off"; | 125 | default-state = "off"; |
126 | }; | 126 | }; |
127 | 127 | ||
128 | led@3 { | 128 | led@3 { |
129 | label = "evmsk:green:mmc0"; | 129 | label = "evmsk:green:mmc0"; |
130 | gpios = <&gpio2 6 0>; | 130 | gpios = <&gpio1 6 0>; |
131 | linux,default-trigger = "mmc0"; | 131 | linux,default-trigger = "mmc0"; |
132 | default-state = "off"; | 132 | default-state = "off"; |
133 | }; | 133 | }; |
134 | 134 | ||
135 | led@4 { | 135 | led@4 { |
136 | label = "evmsk:green:heartbeat"; | 136 | label = "evmsk:green:heartbeat"; |
137 | gpios = <&gpio2 7 0>; | 137 | gpios = <&gpio1 7 0>; |
138 | linux,default-trigger = "heartbeat"; | 138 | linux,default-trigger = "heartbeat"; |
139 | default-state = "off"; | 139 | default-state = "off"; |
140 | }; | 140 | }; |
@@ -148,26 +148,26 @@ | |||
148 | switch@1 { | 148 | switch@1 { |
149 | label = "button0"; | 149 | label = "button0"; |
150 | linux,code = <0x100>; | 150 | linux,code = <0x100>; |
151 | gpios = <&gpio3 3 0>; | 151 | gpios = <&gpio2 3 0>; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | switch@2 { | 154 | switch@2 { |
155 | label = "button1"; | 155 | label = "button1"; |
156 | linux,code = <0x101>; | 156 | linux,code = <0x101>; |
157 | gpios = <&gpio3 2 0>; | 157 | gpios = <&gpio2 2 0>; |
158 | }; | 158 | }; |
159 | 159 | ||
160 | switch@3 { | 160 | switch@3 { |
161 | label = "button2"; | 161 | label = "button2"; |
162 | linux,code = <0x102>; | 162 | linux,code = <0x102>; |
163 | gpios = <&gpio1 30 0>; | 163 | gpios = <&gpio0 30 0>; |
164 | gpio-key,wakeup; | 164 | gpio-key,wakeup; |
165 | }; | 165 | }; |
166 | 166 | ||
167 | switch@4 { | 167 | switch@4 { |
168 | label = "button3"; | 168 | label = "button3"; |
169 | linux,code = <0x103>; | 169 | linux,code = <0x103>; |
170 | gpios = <&gpio3 5 0>; | 170 | gpios = <&gpio2 5 0>; |
171 | }; | 171 | }; |
172 | }; | 172 | }; |
173 | }; | 173 | }; |
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 0957645b73af..df6283076e79 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
@@ -21,6 +21,8 @@ | |||
21 | serial3 = &uart4; | 21 | serial3 = &uart4; |
22 | serial4 = &uart5; | 22 | serial4 = &uart5; |
23 | serial5 = &uart6; | 23 | serial5 = &uart6; |
24 | d_can0 = &dcan0; | ||
25 | d_can1 = &dcan1; | ||
24 | }; | 26 | }; |
25 | 27 | ||
26 | cpus { | 28 | cpus { |
@@ -87,7 +89,7 @@ | |||
87 | reg = <0x48200000 0x1000>; | 89 | reg = <0x48200000 0x1000>; |
88 | }; | 90 | }; |
89 | 91 | ||
90 | gpio1: gpio@44e07000 { | 92 | gpio0: gpio@44e07000 { |
91 | compatible = "ti,omap4-gpio"; | 93 | compatible = "ti,omap4-gpio"; |
92 | ti,hwmods = "gpio1"; | 94 | ti,hwmods = "gpio1"; |
93 | gpio-controller; | 95 | gpio-controller; |
@@ -98,7 +100,7 @@ | |||
98 | interrupts = <96>; | 100 | interrupts = <96>; |
99 | }; | 101 | }; |
100 | 102 | ||
101 | gpio2: gpio@4804c000 { | 103 | gpio1: gpio@4804c000 { |
102 | compatible = "ti,omap4-gpio"; | 104 | compatible = "ti,omap4-gpio"; |
103 | ti,hwmods = "gpio2"; | 105 | ti,hwmods = "gpio2"; |
104 | gpio-controller; | 106 | gpio-controller; |
@@ -109,7 +111,7 @@ | |||
109 | interrupts = <98>; | 111 | interrupts = <98>; |
110 | }; | 112 | }; |
111 | 113 | ||
112 | gpio3: gpio@481ac000 { | 114 | gpio2: gpio@481ac000 { |
113 | compatible = "ti,omap4-gpio"; | 115 | compatible = "ti,omap4-gpio"; |
114 | ti,hwmods = "gpio3"; | 116 | ti,hwmods = "gpio3"; |
115 | gpio-controller; | 117 | gpio-controller; |
@@ -120,7 +122,7 @@ | |||
120 | interrupts = <32>; | 122 | interrupts = <32>; |
121 | }; | 123 | }; |
122 | 124 | ||
123 | gpio4: gpio@481ae000 { | 125 | gpio3: gpio@481ae000 { |
124 | compatible = "ti,omap4-gpio"; | 126 | compatible = "ti,omap4-gpio"; |
125 | ti,hwmods = "gpio4"; | 127 | ti,hwmods = "gpio4"; |
126 | gpio-controller; | 128 | gpio-controller; |
@@ -185,7 +187,7 @@ | |||
185 | status = "disabled"; | 187 | status = "disabled"; |
186 | }; | 188 | }; |
187 | 189 | ||
188 | i2c1: i2c@44e0b000 { | 190 | i2c0: i2c@44e0b000 { |
189 | compatible = "ti,omap4-i2c"; | 191 | compatible = "ti,omap4-i2c"; |
190 | #address-cells = <1>; | 192 | #address-cells = <1>; |
191 | #size-cells = <0>; | 193 | #size-cells = <0>; |
@@ -195,7 +197,7 @@ | |||
195 | status = "disabled"; | 197 | status = "disabled"; |
196 | }; | 198 | }; |
197 | 199 | ||
198 | i2c2: i2c@4802a000 { | 200 | i2c1: i2c@4802a000 { |
199 | compatible = "ti,omap4-i2c"; | 201 | compatible = "ti,omap4-i2c"; |
200 | #address-cells = <1>; | 202 | #address-cells = <1>; |
201 | #size-cells = <0>; | 203 | #size-cells = <0>; |
@@ -205,7 +207,7 @@ | |||
205 | status = "disabled"; | 207 | status = "disabled"; |
206 | }; | 208 | }; |
207 | 209 | ||
208 | i2c3: i2c@4819c000 { | 210 | i2c2: i2c@4819c000 { |
209 | compatible = "ti,omap4-i2c"; | 211 | compatible = "ti,omap4-i2c"; |
210 | #address-cells = <1>; | 212 | #address-cells = <1>; |
211 | #size-cells = <0>; | 213 | #size-cells = <0>; |
@@ -225,7 +227,8 @@ | |||
225 | dcan0: d_can@481cc000 { | 227 | dcan0: d_can@481cc000 { |
226 | compatible = "bosch,d_can"; | 228 | compatible = "bosch,d_can"; |
227 | ti,hwmods = "d_can0"; | 229 | ti,hwmods = "d_can0"; |
228 | reg = <0x481cc000 0x2000>; | 230 | reg = <0x481cc000 0x2000 |
231 | 0x44e10644 0x4>; | ||
229 | interrupts = <52>; | 232 | interrupts = <52>; |
230 | status = "disabled"; | 233 | status = "disabled"; |
231 | }; | 234 | }; |
@@ -233,13 +236,14 @@ | |||
233 | dcan1: d_can@481d0000 { | 236 | dcan1: d_can@481d0000 { |
234 | compatible = "bosch,d_can"; | 237 | compatible = "bosch,d_can"; |
235 | ti,hwmods = "d_can1"; | 238 | ti,hwmods = "d_can1"; |
236 | reg = <0x481d0000 0x2000>; | 239 | reg = <0x481d0000 0x2000 |
240 | 0x44e10644 0x4>; | ||
237 | interrupts = <55>; | 241 | interrupts = <55>; |
238 | status = "disabled"; | 242 | status = "disabled"; |
239 | }; | 243 | }; |
240 | 244 | ||
241 | timer1: timer@44e31000 { | 245 | timer1: timer@44e31000 { |
242 | compatible = "ti,omap2-timer"; | 246 | compatible = "ti,am335x-timer-1ms"; |
243 | reg = <0x44e31000 0x400>; | 247 | reg = <0x44e31000 0x400>; |
244 | interrupts = <67>; | 248 | interrupts = <67>; |
245 | ti,hwmods = "timer1"; | 249 | ti,hwmods = "timer1"; |
@@ -247,21 +251,21 @@ | |||
247 | }; | 251 | }; |
248 | 252 | ||
249 | timer2: timer@48040000 { | 253 | timer2: timer@48040000 { |
250 | compatible = "ti,omap2-timer"; | 254 | compatible = "ti,am335x-timer"; |
251 | reg = <0x48040000 0x400>; | 255 | reg = <0x48040000 0x400>; |
252 | interrupts = <68>; | 256 | interrupts = <68>; |
253 | ti,hwmods = "timer2"; | 257 | ti,hwmods = "timer2"; |
254 | }; | 258 | }; |
255 | 259 | ||
256 | timer3: timer@48042000 { | 260 | timer3: timer@48042000 { |
257 | compatible = "ti,omap2-timer"; | 261 | compatible = "ti,am335x-timer"; |
258 | reg = <0x48042000 0x400>; | 262 | reg = <0x48042000 0x400>; |
259 | interrupts = <69>; | 263 | interrupts = <69>; |
260 | ti,hwmods = "timer3"; | 264 | ti,hwmods = "timer3"; |
261 | }; | 265 | }; |
262 | 266 | ||
263 | timer4: timer@48044000 { | 267 | timer4: timer@48044000 { |
264 | compatible = "ti,omap2-timer"; | 268 | compatible = "ti,am335x-timer"; |
265 | reg = <0x48044000 0x400>; | 269 | reg = <0x48044000 0x400>; |
266 | interrupts = <92>; | 270 | interrupts = <92>; |
267 | ti,hwmods = "timer4"; | 271 | ti,hwmods = "timer4"; |
@@ -269,7 +273,7 @@ | |||
269 | }; | 273 | }; |
270 | 274 | ||
271 | timer5: timer@48046000 { | 275 | timer5: timer@48046000 { |
272 | compatible = "ti,omap2-timer"; | 276 | compatible = "ti,am335x-timer"; |
273 | reg = <0x48046000 0x400>; | 277 | reg = <0x48046000 0x400>; |
274 | interrupts = <93>; | 278 | interrupts = <93>; |
275 | ti,hwmods = "timer5"; | 279 | ti,hwmods = "timer5"; |
@@ -277,7 +281,7 @@ | |||
277 | }; | 281 | }; |
278 | 282 | ||
279 | timer6: timer@48048000 { | 283 | timer6: timer@48048000 { |
280 | compatible = "ti,omap2-timer"; | 284 | compatible = "ti,am335x-timer"; |
281 | reg = <0x48048000 0x400>; | 285 | reg = <0x48048000 0x400>; |
282 | interrupts = <94>; | 286 | interrupts = <94>; |
283 | ti,hwmods = "timer6"; | 287 | ti,hwmods = "timer6"; |
@@ -285,7 +289,7 @@ | |||
285 | }; | 289 | }; |
286 | 290 | ||
287 | timer7: timer@4804a000 { | 291 | timer7: timer@4804a000 { |
288 | compatible = "ti,omap2-timer"; | 292 | compatible = "ti,am335x-timer"; |
289 | reg = <0x4804a000 0x400>; | 293 | reg = <0x4804a000 0x400>; |
290 | interrupts = <95>; | 294 | interrupts = <95>; |
291 | ti,hwmods = "timer7"; | 295 | ti,hwmods = "timer7"; |
@@ -305,7 +309,7 @@ | |||
305 | #address-cells = <1>; | 309 | #address-cells = <1>; |
306 | #size-cells = <0>; | 310 | #size-cells = <0>; |
307 | reg = <0x48030000 0x400>; | 311 | reg = <0x48030000 0x400>; |
308 | interrupt = <65>; | 312 | interrupts = <65>; |
309 | ti,spi-num-cs = <2>; | 313 | ti,spi-num-cs = <2>; |
310 | ti,hwmods = "spi0"; | 314 | ti,hwmods = "spi0"; |
311 | status = "disabled"; | 315 | status = "disabled"; |
@@ -316,7 +320,7 @@ | |||
316 | #address-cells = <1>; | 320 | #address-cells = <1>; |
317 | #size-cells = <0>; | 321 | #size-cells = <0>; |
318 | reg = <0x481a0000 0x400>; | 322 | reg = <0x481a0000 0x400>; |
319 | interrupt = <125>; | 323 | interrupts = <125>; |
320 | ti,spi-num-cs = <2>; | 324 | ti,spi-num-cs = <2>; |
321 | ti,hwmods = "spi1"; | 325 | ti,hwmods = "spi1"; |
322 | status = "disabled"; | 326 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/am3517-evm.dts b/arch/arm/boot/dts/am3517-evm.dts index 474f760ecadf..e9b5bdae4908 100644 --- a/arch/arm/boot/dts/am3517-evm.dts +++ b/arch/arm/boot/dts/am3517-evm.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TI AM3517 EVM (AM3517/05)"; | 13 | model = "TI AM3517 EVM (AM3517/05)"; |
diff --git a/arch/arm/boot/dts/am3517_mt_ventoux.dts b/arch/arm/boot/dts/am3517_mt_ventoux.dts index 5eb26d7d9b4e..556868388a23 100644 --- a/arch/arm/boot/dts/am3517_mt_ventoux.dts +++ b/arch/arm/boot/dts/am3517_mt_ventoux.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TeeJet Mt.Ventoux"; | 13 | model = "TeeJet Mt.Ventoux"; |
diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi index 761c4b69b25b..37aa7487d4d8 100644 --- a/arch/arm/boot/dts/omap2.dtsi +++ b/arch/arm/boot/dts/omap2.dtsi | |||
@@ -26,6 +26,11 @@ | |||
26 | }; | 26 | }; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | pmu { | ||
30 | compatible = "arm,arm1136-pmu"; | ||
31 | interrupts = <3>; | ||
32 | }; | ||
33 | |||
29 | soc { | 34 | soc { |
30 | compatible = "ti,omap-infra"; | 35 | compatible = "ti,omap-infra"; |
31 | mpu { | 36 | mpu { |
@@ -49,6 +54,18 @@ | |||
49 | reg = <0x480FE000 0x1000>; | 54 | reg = <0x480FE000 0x1000>; |
50 | }; | 55 | }; |
51 | 56 | ||
57 | sdma: dma-controller@48056000 { | ||
58 | compatible = "ti,omap2430-sdma", "ti,omap2420-sdma"; | ||
59 | reg = <0x48056000 0x1000>; | ||
60 | interrupts = <12>, | ||
61 | <13>, | ||
62 | <14>, | ||
63 | <15>; | ||
64 | #dma-cells = <1>; | ||
65 | #dma-channels = <32>; | ||
66 | #dma-requests = <64>; | ||
67 | }; | ||
68 | |||
52 | uart1: serial@4806a000 { | 69 | uart1: serial@4806a000 { |
53 | compatible = "ti,omap2-uart"; | 70 | compatible = "ti,omap2-uart"; |
54 | ti,hwmods = "uart1"; | 71 | ti,hwmods = "uart1"; |
@@ -68,28 +85,28 @@ | |||
68 | }; | 85 | }; |
69 | 86 | ||
70 | timer2: timer@4802a000 { | 87 | timer2: timer@4802a000 { |
71 | compatible = "ti,omap2-timer"; | 88 | compatible = "ti,omap2420-timer"; |
72 | reg = <0x4802a000 0x400>; | 89 | reg = <0x4802a000 0x400>; |
73 | interrupts = <38>; | 90 | interrupts = <38>; |
74 | ti,hwmods = "timer2"; | 91 | ti,hwmods = "timer2"; |
75 | }; | 92 | }; |
76 | 93 | ||
77 | timer3: timer@48078000 { | 94 | timer3: timer@48078000 { |
78 | compatible = "ti,omap2-timer"; | 95 | compatible = "ti,omap2420-timer"; |
79 | reg = <0x48078000 0x400>; | 96 | reg = <0x48078000 0x400>; |
80 | interrupts = <39>; | 97 | interrupts = <39>; |
81 | ti,hwmods = "timer3"; | 98 | ti,hwmods = "timer3"; |
82 | }; | 99 | }; |
83 | 100 | ||
84 | timer4: timer@4807a000 { | 101 | timer4: timer@4807a000 { |
85 | compatible = "ti,omap2-timer"; | 102 | compatible = "ti,omap2420-timer"; |
86 | reg = <0x4807a000 0x400>; | 103 | reg = <0x4807a000 0x400>; |
87 | interrupts = <40>; | 104 | interrupts = <40>; |
88 | ti,hwmods = "timer4"; | 105 | ti,hwmods = "timer4"; |
89 | }; | 106 | }; |
90 | 107 | ||
91 | timer5: timer@4807c000 { | 108 | timer5: timer@4807c000 { |
92 | compatible = "ti,omap2-timer"; | 109 | compatible = "ti,omap2420-timer"; |
93 | reg = <0x4807c000 0x400>; | 110 | reg = <0x4807c000 0x400>; |
94 | interrupts = <41>; | 111 | interrupts = <41>; |
95 | ti,hwmods = "timer5"; | 112 | ti,hwmods = "timer5"; |
@@ -97,7 +114,7 @@ | |||
97 | }; | 114 | }; |
98 | 115 | ||
99 | timer6: timer@4807e000 { | 116 | timer6: timer@4807e000 { |
100 | compatible = "ti,omap2-timer"; | 117 | compatible = "ti,omap2420-timer"; |
101 | reg = <0x4807e000 0x400>; | 118 | reg = <0x4807e000 0x400>; |
102 | interrupts = <42>; | 119 | interrupts = <42>; |
103 | ti,hwmods = "timer6"; | 120 | ti,hwmods = "timer6"; |
@@ -105,7 +122,7 @@ | |||
105 | }; | 122 | }; |
106 | 123 | ||
107 | timer7: timer@48080000 { | 124 | timer7: timer@48080000 { |
108 | compatible = "ti,omap2-timer"; | 125 | compatible = "ti,omap2420-timer"; |
109 | reg = <0x48080000 0x400>; | 126 | reg = <0x48080000 0x400>; |
110 | interrupts = <43>; | 127 | interrupts = <43>; |
111 | ti,hwmods = "timer7"; | 128 | ti,hwmods = "timer7"; |
@@ -113,7 +130,7 @@ | |||
113 | }; | 130 | }; |
114 | 131 | ||
115 | timer8: timer@48082000 { | 132 | timer8: timer@48082000 { |
116 | compatible = "ti,omap2-timer"; | 133 | compatible = "ti,omap2420-timer"; |
117 | reg = <0x48082000 0x400>; | 134 | reg = <0x48082000 0x400>; |
118 | interrupts = <44>; | 135 | interrupts = <44>; |
119 | ti,hwmods = "timer8"; | 136 | ti,hwmods = "timer8"; |
@@ -121,7 +138,7 @@ | |||
121 | }; | 138 | }; |
122 | 139 | ||
123 | timer9: timer@48084000 { | 140 | timer9: timer@48084000 { |
124 | compatible = "ti,omap2-timer"; | 141 | compatible = "ti,omap2420-timer"; |
125 | reg = <0x48084000 0x400>; | 142 | reg = <0x48084000 0x400>; |
126 | interrupts = <45>; | 143 | interrupts = <45>; |
127 | ti,hwmods = "timer9"; | 144 | ti,hwmods = "timer9"; |
@@ -129,7 +146,7 @@ | |||
129 | }; | 146 | }; |
130 | 147 | ||
131 | timer10: timer@48086000 { | 148 | timer10: timer@48086000 { |
132 | compatible = "ti,omap2-timer"; | 149 | compatible = "ti,omap2420-timer"; |
133 | reg = <0x48086000 0x400>; | 150 | reg = <0x48086000 0x400>; |
134 | interrupts = <46>; | 151 | interrupts = <46>; |
135 | ti,hwmods = "timer10"; | 152 | ti,hwmods = "timer10"; |
@@ -137,7 +154,7 @@ | |||
137 | }; | 154 | }; |
138 | 155 | ||
139 | timer11: timer@48088000 { | 156 | timer11: timer@48088000 { |
140 | compatible = "ti,omap2-timer"; | 157 | compatible = "ti,omap2420-timer"; |
141 | reg = <0x48088000 0x400>; | 158 | reg = <0x48088000 0x400>; |
142 | interrupts = <47>; | 159 | interrupts = <47>; |
143 | ti,hwmods = "timer11"; | 160 | ti,hwmods = "timer11"; |
@@ -145,7 +162,7 @@ | |||
145 | }; | 162 | }; |
146 | 163 | ||
147 | timer12: timer@4808a000 { | 164 | timer12: timer@4808a000 { |
148 | compatible = "ti,omap2-timer"; | 165 | compatible = "ti,omap2420-timer"; |
149 | reg = <0x4808a000 0x400>; | 166 | reg = <0x4808a000 0x400>; |
150 | interrupts = <48>; | 167 | interrupts = <48>; |
151 | ti,hwmods = "timer12"; | 168 | ti,hwmods = "timer12"; |
diff --git a/arch/arm/boot/dts/omap2420-h4.dts b/arch/arm/boot/dts/omap2420-h4.dts index 9b0d07746cba..68282ee13e26 100644 --- a/arch/arm/boot/dts/omap2420-h4.dts +++ b/arch/arm/boot/dts/omap2420-h4.dts | |||
@@ -18,3 +18,49 @@ | |||
18 | reg = <0x80000000 0x4000000>; /* 64 MB */ | 18 | reg = <0x80000000 0x4000000>; /* 64 MB */ |
19 | }; | 19 | }; |
20 | }; | 20 | }; |
21 | |||
22 | &gpmc { | ||
23 | ranges = <0 0 0x08000000 0x04000000>; | ||
24 | |||
25 | nor@0,0 { | ||
26 | compatible = "cfi-flash"; | ||
27 | linux,mtd-name= "intel,ge28f256l18b85"; | ||
28 | #address-cells = <1>; | ||
29 | #size-cells = <1>; | ||
30 | reg = <0 0 0x04000000>; | ||
31 | bank-width = <2>; | ||
32 | |||
33 | gpmc,mux-add-data = <2>; | ||
34 | gpmc,cs-on-ns = <10>; | ||
35 | gpmc,cs-rd-off-ns = <160>; | ||
36 | gpmc,cs-wr-off-ns = <160>; | ||
37 | gpmc,adv-on-ns = <20>; | ||
38 | gpmc,adv-rd-off-ns = <50>; | ||
39 | gpmc,adv-wr-off-ns = <50>; | ||
40 | gpmc,oe-on-ns = <60>; | ||
41 | gpmc,oe-off-ns = <120>; | ||
42 | gpmc,we-on-ns = <60>; | ||
43 | gpmc,we-off-ns = <120>; | ||
44 | gpmc,rd-cycle-ns = <170>; | ||
45 | gpmc,wr-cycle-ns = <170>; | ||
46 | gpmc,access-ns = <150>; | ||
47 | gpmc,page-burst-access-ns = <10>; | ||
48 | |||
49 | partition@0 { | ||
50 | label = "bootloader"; | ||
51 | reg = <0 0x20000>; | ||
52 | }; | ||
53 | partition@0x20000 { | ||
54 | label = "params"; | ||
55 | reg = <0x20000 0x20000>; | ||
56 | }; | ||
57 | partition@0x40000 { | ||
58 | label = "kernel"; | ||
59 | reg = <0x40000 0x200000>; | ||
60 | }; | ||
61 | partition@0x240000 { | ||
62 | label = "file-system"; | ||
63 | reg = <0x240000 0x3dc0000>; | ||
64 | }; | ||
65 | }; | ||
66 | }; | ||
diff --git a/arch/arm/boot/dts/omap2420.dtsi b/arch/arm/boot/dts/omap2420.dtsi index af6560908905..da5b285b73be 100644 --- a/arch/arm/boot/dts/omap2420.dtsi +++ b/arch/arm/boot/dts/omap2420.dtsi | |||
@@ -29,6 +29,65 @@ | |||
29 | pinctrl-single,function-mask = <0x3f>; | 29 | pinctrl-single,function-mask = <0x3f>; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | gpio1: gpio@48018000 { | ||
33 | compatible = "ti,omap2-gpio"; | ||
34 | reg = <0x48018000 0x200>; | ||
35 | interrupts = <29>; | ||
36 | ti,hwmods = "gpio1"; | ||
37 | ti,gpio-always-on; | ||
38 | #gpio-cells = <2>; | ||
39 | gpio-controller; | ||
40 | #interrupt-cells = <2>; | ||
41 | interrupt-controller; | ||
42 | }; | ||
43 | |||
44 | gpio2: gpio@4801a000 { | ||
45 | compatible = "ti,omap2-gpio"; | ||
46 | reg = <0x4801a000 0x200>; | ||
47 | interrupts = <30>; | ||
48 | ti,hwmods = "gpio2"; | ||
49 | ti,gpio-always-on; | ||
50 | #gpio-cells = <2>; | ||
51 | gpio-controller; | ||
52 | #interrupt-cells = <2>; | ||
53 | interrupt-controller; | ||
54 | }; | ||
55 | |||
56 | gpio3: gpio@4801c000 { | ||
57 | compatible = "ti,omap2-gpio"; | ||
58 | reg = <0x4801c000 0x200>; | ||
59 | interrupts = <31>; | ||
60 | ti,hwmods = "gpio3"; | ||
61 | ti,gpio-always-on; | ||
62 | #gpio-cells = <2>; | ||
63 | gpio-controller; | ||
64 | #interrupt-cells = <2>; | ||
65 | interrupt-controller; | ||
66 | }; | ||
67 | |||
68 | gpio4: gpio@4801e000 { | ||
69 | compatible = "ti,omap2-gpio"; | ||
70 | reg = <0x4801e000 0x200>; | ||
71 | interrupts = <32>; | ||
72 | ti,hwmods = "gpio4"; | ||
73 | ti,gpio-always-on; | ||
74 | #gpio-cells = <2>; | ||
75 | gpio-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | interrupt-controller; | ||
78 | }; | ||
79 | |||
80 | gpmc: gpmc@6800a000 { | ||
81 | compatible = "ti,omap2420-gpmc"; | ||
82 | reg = <0x6800a000 0x1000>; | ||
83 | #address-cells = <2>; | ||
84 | #size-cells = <1>; | ||
85 | interrupts = <20>; | ||
86 | gpmc,num-cs = <8>; | ||
87 | gpmc,num-waitpins = <4>; | ||
88 | ti,hwmods = "gpmc"; | ||
89 | }; | ||
90 | |||
32 | mcbsp1: mcbsp@48074000 { | 91 | mcbsp1: mcbsp@48074000 { |
33 | compatible = "ti,omap2420-mcbsp"; | 92 | compatible = "ti,omap2420-mcbsp"; |
34 | reg = <0x48074000 0xff>; | 93 | reg = <0x48074000 0xff>; |
@@ -37,6 +96,9 @@ | |||
37 | <60>; /* RX interrupt */ | 96 | <60>; /* RX interrupt */ |
38 | interrupt-names = "tx", "rx"; | 97 | interrupt-names = "tx", "rx"; |
39 | ti,hwmods = "mcbsp1"; | 98 | ti,hwmods = "mcbsp1"; |
99 | dmas = <&sdma 31>, | ||
100 | <&sdma 32>; | ||
101 | dma-names = "tx", "rx"; | ||
40 | }; | 102 | }; |
41 | 103 | ||
42 | mcbsp2: mcbsp@48076000 { | 104 | mcbsp2: mcbsp@48076000 { |
@@ -47,10 +109,13 @@ | |||
47 | <63>; /* RX interrupt */ | 109 | <63>; /* RX interrupt */ |
48 | interrupt-names = "tx", "rx"; | 110 | interrupt-names = "tx", "rx"; |
49 | ti,hwmods = "mcbsp2"; | 111 | ti,hwmods = "mcbsp2"; |
112 | dmas = <&sdma 33>, | ||
113 | <&sdma 34>; | ||
114 | dma-names = "tx", "rx"; | ||
50 | }; | 115 | }; |
51 | 116 | ||
52 | timer1: timer@48028000 { | 117 | timer1: timer@48028000 { |
53 | compatible = "ti,omap2-timer"; | 118 | compatible = "ti,omap2420-timer"; |
54 | reg = <0x48028000 0x400>; | 119 | reg = <0x48028000 0x400>; |
55 | interrupts = <37>; | 120 | interrupts = <37>; |
56 | ti,hwmods = "timer1"; | 121 | ti,hwmods = "timer1"; |
diff --git a/arch/arm/boot/dts/omap2430.dtsi b/arch/arm/boot/dts/omap2430.dtsi index c3924457c9b6..054bc4439568 100644 --- a/arch/arm/boot/dts/omap2430.dtsi +++ b/arch/arm/boot/dts/omap2430.dtsi | |||
@@ -29,6 +29,76 @@ | |||
29 | pinctrl-single,function-mask = <0x3f>; | 29 | pinctrl-single,function-mask = <0x3f>; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | gpio1: gpio@4900c000 { | ||
33 | compatible = "ti,omap2-gpio"; | ||
34 | reg = <0x4900c000 0x200>; | ||
35 | interrupts = <29>; | ||
36 | ti,hwmods = "gpio1"; | ||
37 | ti,gpio-always-on; | ||
38 | #gpio-cells = <2>; | ||
39 | gpio-controller; | ||
40 | #interrupt-cells = <2>; | ||
41 | interrupt-controller; | ||
42 | }; | ||
43 | |||
44 | gpio2: gpio@4900e000 { | ||
45 | compatible = "ti,omap2-gpio"; | ||
46 | reg = <0x4900e000 0x200>; | ||
47 | interrupts = <30>; | ||
48 | ti,hwmods = "gpio2"; | ||
49 | ti,gpio-always-on; | ||
50 | #gpio-cells = <2>; | ||
51 | gpio-controller; | ||
52 | #interrupt-cells = <2>; | ||
53 | interrupt-controller; | ||
54 | }; | ||
55 | |||
56 | gpio3: gpio@49010000 { | ||
57 | compatible = "ti,omap2-gpio"; | ||
58 | reg = <0x49010000 0x200>; | ||
59 | interrupts = <31>; | ||
60 | ti,hwmods = "gpio3"; | ||
61 | ti,gpio-always-on; | ||
62 | #gpio-cells = <2>; | ||
63 | gpio-controller; | ||
64 | #interrupt-cells = <2>; | ||
65 | interrupt-controller; | ||
66 | }; | ||
67 | |||
68 | gpio4: gpio@49012000 { | ||
69 | compatible = "ti,omap2-gpio"; | ||
70 | reg = <0x49012000 0x200>; | ||
71 | interrupts = <32>; | ||
72 | ti,hwmods = "gpio4"; | ||
73 | ti,gpio-always-on; | ||
74 | #gpio-cells = <2>; | ||
75 | gpio-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | interrupt-controller; | ||
78 | }; | ||
79 | |||
80 | gpio5: gpio@480b6000 { | ||
81 | compatible = "ti,omap2-gpio"; | ||
82 | reg = <0x480b6000 0x200>; | ||
83 | interrupts = <33>; | ||
84 | ti,hwmods = "gpio5"; | ||
85 | #gpio-cells = <2>; | ||
86 | gpio-controller; | ||
87 | #interrupt-cells = <2>; | ||
88 | interrupt-controller; | ||
89 | }; | ||
90 | |||
91 | gpmc: gpmc@6e000000 { | ||
92 | compatible = "ti,omap2430-gpmc"; | ||
93 | reg = <0x6e000000 0x1000>; | ||
94 | #address-cells = <2>; | ||
95 | #size-cells = <1>; | ||
96 | interrupts = <20>; | ||
97 | gpmc,num-cs = <8>; | ||
98 | gpmc,num-waitpins = <4>; | ||
99 | ti,hwmods = "gpmc"; | ||
100 | }; | ||
101 | |||
32 | mcbsp1: mcbsp@48074000 { | 102 | mcbsp1: mcbsp@48074000 { |
33 | compatible = "ti,omap2430-mcbsp"; | 103 | compatible = "ti,omap2430-mcbsp"; |
34 | reg = <0x48074000 0xff>; | 104 | reg = <0x48074000 0xff>; |
@@ -40,6 +110,9 @@ | |||
40 | interrupt-names = "common", "tx", "rx", "rx_overflow"; | 110 | interrupt-names = "common", "tx", "rx", "rx_overflow"; |
41 | ti,buffer-size = <128>; | 111 | ti,buffer-size = <128>; |
42 | ti,hwmods = "mcbsp1"; | 112 | ti,hwmods = "mcbsp1"; |
113 | dmas = <&sdma 31>, | ||
114 | <&sdma 32>; | ||
115 | dma-names = "tx", "rx"; | ||
43 | }; | 116 | }; |
44 | 117 | ||
45 | mcbsp2: mcbsp@48076000 { | 118 | mcbsp2: mcbsp@48076000 { |
@@ -52,6 +125,9 @@ | |||
52 | interrupt-names = "common", "tx", "rx"; | 125 | interrupt-names = "common", "tx", "rx"; |
53 | ti,buffer-size = <128>; | 126 | ti,buffer-size = <128>; |
54 | ti,hwmods = "mcbsp2"; | 127 | ti,hwmods = "mcbsp2"; |
128 | dmas = <&sdma 33>, | ||
129 | <&sdma 34>; | ||
130 | dma-names = "tx", "rx"; | ||
55 | }; | 131 | }; |
56 | 132 | ||
57 | mcbsp3: mcbsp@4808c000 { | 133 | mcbsp3: mcbsp@4808c000 { |
@@ -64,6 +140,9 @@ | |||
64 | interrupt-names = "common", "tx", "rx"; | 140 | interrupt-names = "common", "tx", "rx"; |
65 | ti,buffer-size = <128>; | 141 | ti,buffer-size = <128>; |
66 | ti,hwmods = "mcbsp3"; | 142 | ti,hwmods = "mcbsp3"; |
143 | dmas = <&sdma 17>, | ||
144 | <&sdma 18>; | ||
145 | dma-names = "tx", "rx"; | ||
67 | }; | 146 | }; |
68 | 147 | ||
69 | mcbsp4: mcbsp@4808e000 { | 148 | mcbsp4: mcbsp@4808e000 { |
@@ -76,6 +155,9 @@ | |||
76 | interrupt-names = "common", "tx", "rx"; | 155 | interrupt-names = "common", "tx", "rx"; |
77 | ti,buffer-size = <128>; | 156 | ti,buffer-size = <128>; |
78 | ti,hwmods = "mcbsp4"; | 157 | ti,hwmods = "mcbsp4"; |
158 | dmas = <&sdma 19>, | ||
159 | <&sdma 20>; | ||
160 | dma-names = "tx", "rx"; | ||
79 | }; | 161 | }; |
80 | 162 | ||
81 | mcbsp5: mcbsp@48096000 { | 163 | mcbsp5: mcbsp@48096000 { |
@@ -88,10 +170,13 @@ | |||
88 | interrupt-names = "common", "tx", "rx"; | 170 | interrupt-names = "common", "tx", "rx"; |
89 | ti,buffer-size = <128>; | 171 | ti,buffer-size = <128>; |
90 | ti,hwmods = "mcbsp5"; | 172 | ti,hwmods = "mcbsp5"; |
173 | dmas = <&sdma 21>, | ||
174 | <&sdma 22>; | ||
175 | dma-names = "tx", "rx"; | ||
91 | }; | 176 | }; |
92 | 177 | ||
93 | timer1: timer@49018000 { | 178 | timer1: timer@49018000 { |
94 | compatible = "ti,omap2-timer"; | 179 | compatible = "ti,omap2420-timer"; |
95 | reg = <0x49018000 0x400>; | 180 | reg = <0x49018000 0x400>; |
96 | interrupts = <37>; | 181 | interrupts = <37>; |
97 | ti,hwmods = "timer1"; | 182 | ti,hwmods = "timer1"; |
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts index 3705a81c1fc2..5a31964ae339 100644 --- a/arch/arm/boot/dts/omap3-beagle-xm.dts +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts | |||
@@ -13,6 +13,12 @@ | |||
13 | model = "TI OMAP3 BeagleBoard xM"; | 13 | model = "TI OMAP3 BeagleBoard xM"; |
14 | compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3"; | 14 | compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3"; |
15 | 15 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
16 | memory { | 22 | memory { |
17 | device_type = "memory"; | 23 | device_type = "memory"; |
18 | reg = <0x80000000 0x20000000>; /* 512 MB */ | 24 | reg = <0x80000000 0x20000000>; /* 512 MB */ |
@@ -20,10 +26,6 @@ | |||
20 | 26 | ||
21 | leds { | 27 | leds { |
22 | compatible = "gpio-leds"; | 28 | compatible = "gpio-leds"; |
23 | pmu_stat { | ||
24 | label = "beagleboard::pmu_stat"; | ||
25 | gpios = <&twl_gpio 19 0>; /* LEDB */ | ||
26 | }; | ||
27 | 29 | ||
28 | heartbeat { | 30 | heartbeat { |
29 | label = "beagleboard::usr0"; | 31 | label = "beagleboard::usr0"; |
@@ -38,6 +40,16 @@ | |||
38 | }; | 40 | }; |
39 | }; | 41 | }; |
40 | 42 | ||
43 | pwmleds { | ||
44 | compatible = "pwm-leds"; | ||
45 | |||
46 | pmu_stat { | ||
47 | label = "beagleboard::pmu_stat"; | ||
48 | pwms = <&twl_pwmled 1 7812500>; | ||
49 | max-brightness = <127>; | ||
50 | }; | ||
51 | }; | ||
52 | |||
41 | sound { | 53 | sound { |
42 | compatible = "ti,omap-twl4030"; | 54 | compatible = "ti,omap-twl4030"; |
43 | ti,model = "omap3beagle"; | 55 | ti,model = "omap3beagle"; |
@@ -107,3 +119,9 @@ | |||
107 | */ | 119 | */ |
108 | ti,pulldowns = <0x03a1c4>; | 120 | ti,pulldowns = <0x03a1c4>; |
109 | }; | 121 | }; |
122 | |||
123 | &usb_otg_hs { | ||
124 | interface-type = <0>; | ||
125 | mode = <3>; | ||
126 | power = <50>; | ||
127 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts index 02d23f15fd86..6eec69997607 100644 --- a/arch/arm/boot/dts/omap3-beagle.dts +++ b/arch/arm/boot/dts/omap3-beagle.dts | |||
@@ -7,12 +7,18 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TI OMAP3 BeagleBoard"; | 13 | model = "TI OMAP3 BeagleBoard"; |
14 | compatible = "ti,omap3-beagle", "ti,omap3"; | 14 | compatible = "ti,omap3-beagle", "ti,omap3"; |
15 | 15 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
16 | memory { | 22 | memory { |
17 | device_type = "memory"; | 23 | device_type = "memory"; |
18 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 24 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
diff --git a/arch/arm/boot/dts/omap3-devkit8000.dts b/arch/arm/boot/dts/omap3-devkit8000.dts new file mode 100644 index 000000000000..8a5cdcc6debd --- /dev/null +++ b/arch/arm/boot/dts/omap3-devkit8000.dts | |||
@@ -0,0 +1,169 @@ | |||
1 | /* | ||
2 | * Author: Anil Kumar <anilk4.v@gmail.com> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | |||
10 | /include/ "omap34xx.dtsi" | ||
11 | / { | ||
12 | model = "TimLL OMAP3 Devkit8000"; | ||
13 | compatible = "timll,omap3-devkit8000", "ti,omap3"; | ||
14 | |||
15 | memory { | ||
16 | device_type = "memory"; | ||
17 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
18 | }; | ||
19 | |||
20 | leds { | ||
21 | compatible = "gpio-leds"; | ||
22 | |||
23 | heartbeat { | ||
24 | label = "devkit8000::led1"; | ||
25 | gpios = <&gpio6 26 0>; /* 186 -> LED1 */ | ||
26 | default-state = "on"; | ||
27 | linux,default-trigger = "heartbeat"; | ||
28 | }; | ||
29 | |||
30 | mmc { | ||
31 | label = "devkit8000::led2"; | ||
32 | gpios = <&gpio6 3 0>; /* 163 -> LED2 */ | ||
33 | default-state = "on"; | ||
34 | linux,default-trigger = "none"; | ||
35 | }; | ||
36 | |||
37 | usr { | ||
38 | label = "devkit8000::led3"; | ||
39 | gpios = <&gpio6 4 0>; /* 164 -> LED3 */ | ||
40 | default-state = "on"; | ||
41 | linux,default-trigger = "usr"; | ||
42 | }; | ||
43 | |||
44 | }; | ||
45 | |||
46 | sound { | ||
47 | compatible = "ti,omap-twl4030"; | ||
48 | ti,model = "devkit8000"; | ||
49 | |||
50 | ti,mcbsp = <&mcbsp2>; | ||
51 | ti,codec = <&twl_audio>; | ||
52 | ti,audio-routing = | ||
53 | "Ext Spk", "PREDRIVEL", | ||
54 | "Ext Spk", "PREDRIVER", | ||
55 | "MAINMIC", "Main Mic", | ||
56 | "Main Mic", "Mic Bias 1"; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | &i2c1 { | ||
61 | clock-frequency = <2600000>; | ||
62 | |||
63 | twl: twl@48 { | ||
64 | reg = <0x48>; | ||
65 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
66 | |||
67 | twl_audio: audio { | ||
68 | compatible = "ti,twl4030-audio"; | ||
69 | codec { | ||
70 | }; | ||
71 | }; | ||
72 | }; | ||
73 | }; | ||
74 | |||
75 | &i2c2 { | ||
76 | status = "disabled"; | ||
77 | }; | ||
78 | |||
79 | &i2c3 { | ||
80 | status = "disabled"; | ||
81 | }; | ||
82 | |||
83 | /include/ "twl4030.dtsi" | ||
84 | |||
85 | &mmc1 { | ||
86 | vmmc-supply = <&vmmc1>; | ||
87 | vmmc_aux-supply = <&vsim>; | ||
88 | bus-width = <8>; | ||
89 | }; | ||
90 | |||
91 | &mmc2 { | ||
92 | status = "disabled"; | ||
93 | }; | ||
94 | |||
95 | &mmc3 { | ||
96 | status = "disabled"; | ||
97 | }; | ||
98 | |||
99 | &wdt2 { | ||
100 | status = "disabled"; | ||
101 | }; | ||
102 | |||
103 | &mcbsp1 { | ||
104 | status = "disabled"; | ||
105 | }; | ||
106 | |||
107 | &mcbsp3 { | ||
108 | status = "disabled"; | ||
109 | }; | ||
110 | |||
111 | &mcbsp4 { | ||
112 | status = "disabled"; | ||
113 | }; | ||
114 | |||
115 | &mcbsp5 { | ||
116 | status = "disabled"; | ||
117 | }; | ||
118 | |||
119 | &gpmc { | ||
120 | ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */ | ||
121 | |||
122 | nand@0,0 { | ||
123 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
124 | nand-bus-width = <16>; | ||
125 | |||
126 | gpmc,sync-clk = <0>; | ||
127 | gpmc,cs-on = <0>; | ||
128 | gpmc,cs-rd-off = <44>; | ||
129 | gpmc,cs-wr-off = <44>; | ||
130 | gpmc,adv-on = <6>; | ||
131 | gpmc,adv-rd-off = <34>; | ||
132 | gpmc,adv-wr-off = <44>; | ||
133 | gpmc,we-off = <40>; | ||
134 | gpmc,oe-off = <54>; | ||
135 | gpmc,access = <64>; | ||
136 | gpmc,rd-cycle = <82>; | ||
137 | gpmc,wr-cycle = <82>; | ||
138 | gpmc,wr-access = <40>; | ||
139 | gpmc,wr-data-mux-bus = <0>; | ||
140 | |||
141 | #address-cells = <1>; | ||
142 | #size-cells = <1>; | ||
143 | |||
144 | x-loader@0 { | ||
145 | label = "X-Loader"; | ||
146 | reg = <0 0x80000>; | ||
147 | }; | ||
148 | |||
149 | bootloaders@80000 { | ||
150 | label = "U-Boot"; | ||
151 | reg = <0x80000 0x1e0000>; | ||
152 | }; | ||
153 | |||
154 | bootloaders_env@260000 { | ||
155 | label = "U-Boot Env"; | ||
156 | reg = <0x260000 0x20000>; | ||
157 | }; | ||
158 | |||
159 | kernel@280000 { | ||
160 | label = "Kernel"; | ||
161 | reg = <0x280000 0x400000>; | ||
162 | }; | ||
163 | |||
164 | filesystem@680000 { | ||
165 | label = "File System"; | ||
166 | reg = <0x680000 0xf980000>; | ||
167 | }; | ||
168 | }; | ||
169 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts index e8ba1c247a39..05f51e10ddd6 100644 --- a/arch/arm/boot/dts/omap3-evm.dts +++ b/arch/arm/boot/dts/omap3-evm.dts | |||
@@ -7,12 +7,18 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)"; | 13 | model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)"; |
14 | compatible = "ti,omap3-evm", "ti,omap3"; | 14 | compatible = "ti,omap3-evm", "ti,omap3"; |
15 | 15 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
16 | memory { | 22 | memory { |
17 | device_type = "memory"; | 23 | device_type = "memory"; |
18 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 24 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
@@ -59,3 +65,9 @@ | |||
59 | &twl_gpio { | 65 | &twl_gpio { |
60 | ti,use-leds; | 66 | ti,use-leds; |
61 | }; | 67 | }; |
68 | |||
69 | &usb_otg_hs { | ||
70 | interface-type = <0>; | ||
71 | mode = <3>; | ||
72 | power = <50>; | ||
73 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi new file mode 100644 index 000000000000..f8fe3b748c3e --- /dev/null +++ b/arch/arm/boot/dts/omap3-igep.dtsi | |||
@@ -0,0 +1,122 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IGEP Technology devices | ||
3 | * | ||
4 | * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk> | ||
5 | * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | /dts-v1/; | ||
12 | |||
13 | /include/ "omap34xx.dtsi" | ||
14 | |||
15 | / { | ||
16 | memory { | ||
17 | device_type = "memory"; | ||
18 | reg = <0x80000000 0x20000000>; /* 512 MB */ | ||
19 | }; | ||
20 | |||
21 | sound { | ||
22 | compatible = "ti,omap-twl4030"; | ||
23 | ti,model = "igep2"; | ||
24 | ti,mcbsp = <&mcbsp2>; | ||
25 | ti,codec = <&twl_audio>; | ||
26 | }; | ||
27 | }; | ||
28 | |||
29 | &omap3_pmx_core { | ||
30 | uart1_pins: pinmux_uart1_pins { | ||
31 | pinctrl-single,pins = < | ||
32 | 0x152 0x100 /* uart1_rx.uart1_rx INPUT | MODE0 */ | ||
33 | 0x14c 0 /* uart1_tx.uart1_tx OUTPUT | MODE0 */ | ||
34 | >; | ||
35 | }; | ||
36 | |||
37 | uart2_pins: pinmux_uart2_pins { | ||
38 | pinctrl-single,pins = < | ||
39 | 0x14a 0x100 /* uart2_rx.uart2_rx INPUT | MODE0 */ | ||
40 | 0x148 0 /* uart2_tx.uart2_tx OUTPUT | MODE0 */ | ||
41 | >; | ||
42 | }; | ||
43 | |||
44 | uart3_pins: pinmux_uart3_pins { | ||
45 | pinctrl-single,pins = < | ||
46 | 0x16e 0x100 /* uart3_rx.uart3_rx INPUT | MODE0 */ | ||
47 | 0x170 0 /* uart3_tx.uart3_tx OUTPUT | MODE0 */ | ||
48 | >; | ||
49 | }; | ||
50 | |||
51 | mmc1_pins: pinmux_mmc1_pins { | ||
52 | pinctrl-single,pins = < | ||
53 | 0x114 0x0118 /* sdmmc1_clk.sdmmc1_clk INPUT PULLUP | MODE 0 */ | ||
54 | 0x116 0x0118 /* sdmmc1_cmd.sdmmc1_cmd INPUT PULLUP | MODE 0 */ | ||
55 | 0x118 0x0118 /* sdmmc1_dat0.sdmmc1_dat0 INPUT PULLUP | MODE 0 */ | ||
56 | 0x11a 0x0118 /* sdmmc1_dat1.sdmmc1_dat1 INPUT PULLUP | MODE 0 */ | ||
57 | 0x11c 0x0118 /* sdmmc1_dat2.sdmmc1_dat2 INPUT PULLUP | MODE 0 */ | ||
58 | 0x11e 0x0118 /* sdmmc1_dat3.sdmmc1_dat3 INPUT PULLUP | MODE 0 */ | ||
59 | 0x120 0x0100 /* sdmmc1_dat4.sdmmc1_dat4 INPUT | MODE 0 */ | ||
60 | 0x122 0x0100 /* sdmmc1_dat5.sdmmc1_dat5 INPUT | MODE 0 */ | ||
61 | 0x124 0x0100 /* sdmmc1_dat6.sdmmc1_dat6 INPUT | MODE 0 */ | ||
62 | 0x126 0x0100 /* sdmmc1_dat7.sdmmc1_dat7 INPUT | MODE 0 */ | ||
63 | >; | ||
64 | }; | ||
65 | }; | ||
66 | |||
67 | &i2c1 { | ||
68 | clock-frequency = <2600000>; | ||
69 | |||
70 | twl: twl@48 { | ||
71 | reg = <0x48>; | ||
72 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
73 | interrupt-parent = <&intc>; | ||
74 | |||
75 | twl_audio: audio { | ||
76 | compatible = "ti,twl4030-audio"; | ||
77 | codec { | ||
78 | }; | ||
79 | }; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | /include/ "twl4030.dtsi" | ||
84 | |||
85 | &i2c2 { | ||
86 | clock-frequency = <400000>; | ||
87 | }; | ||
88 | |||
89 | &mmc1 { | ||
90 | pinctrl-names = "default"; | ||
91 | pinctrl-0 = <&mmc1_pins>; | ||
92 | vmmc-supply = <&vmmc1>; | ||
93 | vmmc_aux-supply = <&vsim>; | ||
94 | bus-width = <8>; | ||
95 | }; | ||
96 | |||
97 | &mmc2 { | ||
98 | status = "disabled"; | ||
99 | }; | ||
100 | |||
101 | &mmc3 { | ||
102 | status = "disabled"; | ||
103 | }; | ||
104 | |||
105 | &uart1 { | ||
106 | pinctrl-names = "default"; | ||
107 | pinctrl-0 = <&uart1_pins>; | ||
108 | }; | ||
109 | |||
110 | &uart2 { | ||
111 | pinctrl-names = "default"; | ||
112 | pinctrl-0 = <&uart2_pins>; | ||
113 | }; | ||
114 | |||
115 | &uart3 { | ||
116 | pinctrl-names = "default"; | ||
117 | pinctrl-0 = <&uart3_pins>; | ||
118 | }; | ||
119 | |||
120 | &twl_gpio { | ||
121 | ti,use-leds; | ||
122 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts new file mode 100644 index 000000000000..e2b98490cc9a --- /dev/null +++ b/arch/arm/boot/dts/omap3-igep0020.dts | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IGEPv2 board | ||
3 | * | ||
4 | * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk> | ||
5 | * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | /include/ "omap3-igep.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "IGEPv2"; | ||
16 | compatible = "isee,omap3-igep0020", "ti,omap3"; | ||
17 | |||
18 | leds { | ||
19 | compatible = "gpio-leds"; | ||
20 | boot { | ||
21 | label = "omap3:green:boot"; | ||
22 | gpios = <&gpio1 26 0>; | ||
23 | default-state = "on"; | ||
24 | }; | ||
25 | |||
26 | user0 { | ||
27 | label = "omap3:red:user0"; | ||
28 | gpios = <&gpio1 27 0>; | ||
29 | default-state = "off"; | ||
30 | }; | ||
31 | |||
32 | user1 { | ||
33 | label = "omap3:red:user1"; | ||
34 | gpios = <&gpio1 28 0>; | ||
35 | default-state = "off"; | ||
36 | }; | ||
37 | |||
38 | user2 { | ||
39 | label = "omap3:green:user1"; | ||
40 | gpios = <&twl_gpio 19 1>; | ||
41 | }; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | &i2c3 { | ||
46 | clock-frequency = <100000>; | ||
47 | |||
48 | /* | ||
49 | * Display monitor features are burnt in the EEPROM | ||
50 | * as EDID data. | ||
51 | */ | ||
52 | eeprom@50 { | ||
53 | compatible = "ti,eeprom"; | ||
54 | reg = <0x50>; | ||
55 | }; | ||
56 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts new file mode 100644 index 000000000000..9dc48d262ffb --- /dev/null +++ b/arch/arm/boot/dts/omap3-igep0030.dts | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IGEP COM Module | ||
3 | * | ||
4 | * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk> | ||
5 | * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | /include/ "omap3-igep.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "IGEP COM Module"; | ||
16 | compatible = "isee,omap3-igep0030", "ti,omap3"; | ||
17 | |||
18 | leds { | ||
19 | compatible = "gpio-leds"; | ||
20 | boot { | ||
21 | label = "omap3:green:boot"; | ||
22 | gpios = <&twl_gpio 13 1>; | ||
23 | default-state = "on"; | ||
24 | }; | ||
25 | |||
26 | user0 { | ||
27 | label = "omap3:red:user0"; | ||
28 | gpios = <&twl_gpio 18 1>; /* LEDA */ | ||
29 | default-state = "off"; | ||
30 | }; | ||
31 | |||
32 | user1 { | ||
33 | label = "omap3:green:user1"; | ||
34 | gpios = <&twl_gpio 19 1>; /* LEDB */ | ||
35 | default-state = "off"; | ||
36 | }; | ||
37 | |||
38 | user2 { | ||
39 | label = "omap3:red:user1"; | ||
40 | gpios = <&gpio1 16 1>; | ||
41 | default-state = "off"; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-overo.dtsi b/arch/arm/boot/dts/omap3-overo.dtsi index 89808ce01673..d4a7280d18b7 100644 --- a/arch/arm/boot/dts/omap3-overo.dtsi +++ b/arch/arm/boot/dts/omap3-overo.dtsi | |||
@@ -11,17 +11,26 @@ | |||
11 | */ | 11 | */ |
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | 13 | ||
14 | /include/ "omap3.dtsi" | 14 | /include/ "omap34xx.dtsi" |
15 | 15 | ||
16 | / { | 16 | / { |
17 | leds { | 17 | pwmleds { |
18 | compatible = "gpio-leds"; | 18 | compatible = "pwm-leds"; |
19 | |||
19 | overo { | 20 | overo { |
20 | label = "overo:blue:COM"; | 21 | label = "overo:blue:COM"; |
21 | gpios = <&twl_gpio 19 0>; | 22 | pwms = <&twl_pwmled 1 7812500>; |
22 | linux,default-trigger = "mmc0"; | 23 | max-brightness = <127>; |
23 | }; | 24 | }; |
24 | }; | 25 | }; |
26 | |||
27 | sound { | ||
28 | compatible = "ti,omap-twl4030"; | ||
29 | ti,model = "overo"; | ||
30 | |||
31 | ti,mcbsp = <&mcbsp2>; | ||
32 | ti,codec = <&twl_audio>; | ||
33 | }; | ||
25 | }; | 34 | }; |
26 | 35 | ||
27 | &i2c1 { | 36 | &i2c1 { |
@@ -31,6 +40,12 @@ | |||
31 | reg = <0x48>; | 40 | reg = <0x48>; |
32 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | 41 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ |
33 | interrupt-parent = <&intc>; | 42 | interrupt-parent = <&intc>; |
43 | |||
44 | twl_audio: audio { | ||
45 | compatible = "ti,twl4030-audio"; | ||
46 | codec { | ||
47 | }; | ||
48 | }; | ||
34 | }; | 49 | }; |
35 | }; | 50 | }; |
36 | 51 | ||
@@ -55,3 +70,9 @@ | |||
55 | &twl_gpio { | 70 | &twl_gpio { |
56 | ti,use-leds; | 71 | ti,use-leds; |
57 | }; | 72 | }; |
73 | |||
74 | &usb_otg_hs { | ||
75 | interface-type = <0>; | ||
76 | mode = <3>; | ||
77 | power = <50>; | ||
78 | }; | ||
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index a14f74bbce7c..4ad03d9dbf0c 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi | |||
@@ -26,8 +26,14 @@ | |||
26 | }; | 26 | }; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | pmu { | ||
30 | compatible = "arm,cortex-a8-pmu"; | ||
31 | interrupts = <3>; | ||
32 | ti,hwmods = "debugss"; | ||
33 | }; | ||
34 | |||
29 | /* | 35 | /* |
30 | * The soc node represents the soc top level view. It is uses for IPs | 36 | * The soc node represents the soc top level view. It is used for IPs |
31 | * that are not memory mapped in the MPU view or for the MPU itself. | 37 | * that are not memory mapped in the MPU view or for the MPU itself. |
32 | */ | 38 | */ |
33 | soc { | 39 | soc { |
@@ -75,76 +81,101 @@ | |||
75 | reg = <0x48200000 0x1000>; | 81 | reg = <0x48200000 0x1000>; |
76 | }; | 82 | }; |
77 | 83 | ||
84 | sdma: dma-controller@48056000 { | ||
85 | compatible = "ti,omap3630-sdma", "ti,omap3430-sdma"; | ||
86 | reg = <0x48056000 0x1000>; | ||
87 | interrupts = <12>, | ||
88 | <13>, | ||
89 | <14>, | ||
90 | <15>; | ||
91 | #dma-cells = <1>; | ||
92 | #dma-channels = <32>; | ||
93 | #dma-requests = <96>; | ||
94 | }; | ||
95 | |||
78 | omap3_pmx_core: pinmux@48002030 { | 96 | omap3_pmx_core: pinmux@48002030 { |
79 | compatible = "ti,omap3-padconf", "pinctrl-single"; | 97 | compatible = "ti,omap3-padconf", "pinctrl-single"; |
80 | reg = <0x48002030 0x05cc>; | 98 | reg = <0x48002030 0x05cc>; |
81 | #address-cells = <1>; | 99 | #address-cells = <1>; |
82 | #size-cells = <0>; | 100 | #size-cells = <0>; |
83 | pinctrl-single,register-width = <16>; | 101 | pinctrl-single,register-width = <16>; |
84 | pinctrl-single,function-mask = <0x7fff>; | 102 | pinctrl-single,function-mask = <0x7f1f>; |
85 | }; | 103 | }; |
86 | 104 | ||
87 | omap3_pmx_wkup: pinmux@0x48002a58 { | 105 | omap3_pmx_wkup: pinmux@0x48002a00 { |
88 | compatible = "ti,omap3-padconf", "pinctrl-single"; | 106 | compatible = "ti,omap3-padconf", "pinctrl-single"; |
89 | reg = <0x48002a58 0x5c>; | 107 | reg = <0x48002a00 0x5c>; |
90 | #address-cells = <1>; | 108 | #address-cells = <1>; |
91 | #size-cells = <0>; | 109 | #size-cells = <0>; |
92 | pinctrl-single,register-width = <16>; | 110 | pinctrl-single,register-width = <16>; |
93 | pinctrl-single,function-mask = <0x7fff>; | 111 | pinctrl-single,function-mask = <0x7f1f>; |
94 | }; | 112 | }; |
95 | 113 | ||
96 | gpio1: gpio@48310000 { | 114 | gpio1: gpio@48310000 { |
97 | compatible = "ti,omap3-gpio"; | 115 | compatible = "ti,omap3-gpio"; |
116 | reg = <0x48310000 0x200>; | ||
117 | interrupts = <29>; | ||
98 | ti,hwmods = "gpio1"; | 118 | ti,hwmods = "gpio1"; |
119 | ti,gpio-always-on; | ||
99 | gpio-controller; | 120 | gpio-controller; |
100 | #gpio-cells = <2>; | 121 | #gpio-cells = <2>; |
101 | interrupt-controller; | 122 | interrupt-controller; |
102 | #interrupt-cells = <1>; | 123 | #interrupt-cells = <2>; |
103 | }; | 124 | }; |
104 | 125 | ||
105 | gpio2: gpio@49050000 { | 126 | gpio2: gpio@49050000 { |
106 | compatible = "ti,omap3-gpio"; | 127 | compatible = "ti,omap3-gpio"; |
128 | reg = <0x49050000 0x200>; | ||
129 | interrupts = <30>; | ||
107 | ti,hwmods = "gpio2"; | 130 | ti,hwmods = "gpio2"; |
108 | gpio-controller; | 131 | gpio-controller; |
109 | #gpio-cells = <2>; | 132 | #gpio-cells = <2>; |
110 | interrupt-controller; | 133 | interrupt-controller; |
111 | #interrupt-cells = <1>; | 134 | #interrupt-cells = <2>; |
112 | }; | 135 | }; |
113 | 136 | ||
114 | gpio3: gpio@49052000 { | 137 | gpio3: gpio@49052000 { |
115 | compatible = "ti,omap3-gpio"; | 138 | compatible = "ti,omap3-gpio"; |
139 | reg = <0x49052000 0x200>; | ||
140 | interrupts = <31>; | ||
116 | ti,hwmods = "gpio3"; | 141 | ti,hwmods = "gpio3"; |
117 | gpio-controller; | 142 | gpio-controller; |
118 | #gpio-cells = <2>; | 143 | #gpio-cells = <2>; |
119 | interrupt-controller; | 144 | interrupt-controller; |
120 | #interrupt-cells = <1>; | 145 | #interrupt-cells = <2>; |
121 | }; | 146 | }; |
122 | 147 | ||
123 | gpio4: gpio@49054000 { | 148 | gpio4: gpio@49054000 { |
124 | compatible = "ti,omap3-gpio"; | 149 | compatible = "ti,omap3-gpio"; |
150 | reg = <0x49054000 0x200>; | ||
151 | interrupts = <32>; | ||
125 | ti,hwmods = "gpio4"; | 152 | ti,hwmods = "gpio4"; |
126 | gpio-controller; | 153 | gpio-controller; |
127 | #gpio-cells = <2>; | 154 | #gpio-cells = <2>; |
128 | interrupt-controller; | 155 | interrupt-controller; |
129 | #interrupt-cells = <1>; | 156 | #interrupt-cells = <2>; |
130 | }; | 157 | }; |
131 | 158 | ||
132 | gpio5: gpio@49056000 { | 159 | gpio5: gpio@49056000 { |
133 | compatible = "ti,omap3-gpio"; | 160 | compatible = "ti,omap3-gpio"; |
161 | reg = <0x49056000 0x200>; | ||
162 | interrupts = <33>; | ||
134 | ti,hwmods = "gpio5"; | 163 | ti,hwmods = "gpio5"; |
135 | gpio-controller; | 164 | gpio-controller; |
136 | #gpio-cells = <2>; | 165 | #gpio-cells = <2>; |
137 | interrupt-controller; | 166 | interrupt-controller; |
138 | #interrupt-cells = <1>; | 167 | #interrupt-cells = <2>; |
139 | }; | 168 | }; |
140 | 169 | ||
141 | gpio6: gpio@49058000 { | 170 | gpio6: gpio@49058000 { |
142 | compatible = "ti,omap3-gpio"; | 171 | compatible = "ti,omap3-gpio"; |
172 | reg = <0x49058000 0x200>; | ||
173 | interrupts = <34>; | ||
143 | ti,hwmods = "gpio6"; | 174 | ti,hwmods = "gpio6"; |
144 | gpio-controller; | 175 | gpio-controller; |
145 | #gpio-cells = <2>; | 176 | #gpio-cells = <2>; |
146 | interrupt-controller; | 177 | interrupt-controller; |
147 | #interrupt-cells = <1>; | 178 | #interrupt-cells = <2>; |
148 | }; | 179 | }; |
149 | 180 | ||
150 | uart1: serial@4806a000 { | 181 | uart1: serial@4806a000 { |
@@ -192,6 +223,16 @@ | |||
192 | #size-cells = <0>; | 223 | #size-cells = <0>; |
193 | ti,hwmods = "mcspi1"; | 224 | ti,hwmods = "mcspi1"; |
194 | ti,spi-num-cs = <4>; | 225 | ti,spi-num-cs = <4>; |
226 | dmas = <&sdma 35>, | ||
227 | <&sdma 36>, | ||
228 | <&sdma 37>, | ||
229 | <&sdma 38>, | ||
230 | <&sdma 39>, | ||
231 | <&sdma 40>, | ||
232 | <&sdma 41>, | ||
233 | <&sdma 42>; | ||
234 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
235 | "tx2", "rx2", "tx3", "rx3"; | ||
195 | }; | 236 | }; |
196 | 237 | ||
197 | mcspi2: spi@4809a000 { | 238 | mcspi2: spi@4809a000 { |
@@ -200,6 +241,11 @@ | |||
200 | #size-cells = <0>; | 241 | #size-cells = <0>; |
201 | ti,hwmods = "mcspi2"; | 242 | ti,hwmods = "mcspi2"; |
202 | ti,spi-num-cs = <2>; | 243 | ti,spi-num-cs = <2>; |
244 | dmas = <&sdma 43>, | ||
245 | <&sdma 44>, | ||
246 | <&sdma 45>, | ||
247 | <&sdma 46>; | ||
248 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
203 | }; | 249 | }; |
204 | 250 | ||
205 | mcspi3: spi@480b8000 { | 251 | mcspi3: spi@480b8000 { |
@@ -208,6 +254,11 @@ | |||
208 | #size-cells = <0>; | 254 | #size-cells = <0>; |
209 | ti,hwmods = "mcspi3"; | 255 | ti,hwmods = "mcspi3"; |
210 | ti,spi-num-cs = <2>; | 256 | ti,spi-num-cs = <2>; |
257 | dmas = <&sdma 15>, | ||
258 | <&sdma 16>, | ||
259 | <&sdma 23>, | ||
260 | <&sdma 24>; | ||
261 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
211 | }; | 262 | }; |
212 | 263 | ||
213 | mcspi4: spi@480ba000 { | 264 | mcspi4: spi@480ba000 { |
@@ -216,22 +267,30 @@ | |||
216 | #size-cells = <0>; | 267 | #size-cells = <0>; |
217 | ti,hwmods = "mcspi4"; | 268 | ti,hwmods = "mcspi4"; |
218 | ti,spi-num-cs = <1>; | 269 | ti,spi-num-cs = <1>; |
270 | dmas = <&sdma 70>, <&sdma 71>; | ||
271 | dma-names = "tx0", "rx0"; | ||
219 | }; | 272 | }; |
220 | 273 | ||
221 | mmc1: mmc@4809c000 { | 274 | mmc1: mmc@4809c000 { |
222 | compatible = "ti,omap3-hsmmc"; | 275 | compatible = "ti,omap3-hsmmc"; |
223 | ti,hwmods = "mmc1"; | 276 | ti,hwmods = "mmc1"; |
224 | ti,dual-volt; | 277 | ti,dual-volt; |
278 | dmas = <&sdma 61>, <&sdma 62>; | ||
279 | dma-names = "tx", "rx"; | ||
225 | }; | 280 | }; |
226 | 281 | ||
227 | mmc2: mmc@480b4000 { | 282 | mmc2: mmc@480b4000 { |
228 | compatible = "ti,omap3-hsmmc"; | 283 | compatible = "ti,omap3-hsmmc"; |
229 | ti,hwmods = "mmc2"; | 284 | ti,hwmods = "mmc2"; |
285 | dmas = <&sdma 47>, <&sdma 48>; | ||
286 | dma-names = "tx", "rx"; | ||
230 | }; | 287 | }; |
231 | 288 | ||
232 | mmc3: mmc@480ad000 { | 289 | mmc3: mmc@480ad000 { |
233 | compatible = "ti,omap3-hsmmc"; | 290 | compatible = "ti,omap3-hsmmc"; |
234 | ti,hwmods = "mmc3"; | 291 | ti,hwmods = "mmc3"; |
292 | dmas = <&sdma 77>, <&sdma 78>; | ||
293 | dma-names = "tx", "rx"; | ||
235 | }; | 294 | }; |
236 | 295 | ||
237 | wdt2: wdt@48314000 { | 296 | wdt2: wdt@48314000 { |
@@ -249,6 +308,9 @@ | |||
249 | interrupt-names = "common", "tx", "rx"; | 308 | interrupt-names = "common", "tx", "rx"; |
250 | ti,buffer-size = <128>; | 309 | ti,buffer-size = <128>; |
251 | ti,hwmods = "mcbsp1"; | 310 | ti,hwmods = "mcbsp1"; |
311 | dmas = <&sdma 31>, | ||
312 | <&sdma 32>; | ||
313 | dma-names = "tx", "rx"; | ||
252 | }; | 314 | }; |
253 | 315 | ||
254 | mcbsp2: mcbsp@49022000 { | 316 | mcbsp2: mcbsp@49022000 { |
@@ -263,6 +325,9 @@ | |||
263 | interrupt-names = "common", "tx", "rx", "sidetone"; | 325 | interrupt-names = "common", "tx", "rx", "sidetone"; |
264 | ti,buffer-size = <1280>; | 326 | ti,buffer-size = <1280>; |
265 | ti,hwmods = "mcbsp2", "mcbsp2_sidetone"; | 327 | ti,hwmods = "mcbsp2", "mcbsp2_sidetone"; |
328 | dmas = <&sdma 33>, | ||
329 | <&sdma 34>; | ||
330 | dma-names = "tx", "rx"; | ||
266 | }; | 331 | }; |
267 | 332 | ||
268 | mcbsp3: mcbsp@49024000 { | 333 | mcbsp3: mcbsp@49024000 { |
@@ -277,6 +342,9 @@ | |||
277 | interrupt-names = "common", "tx", "rx", "sidetone"; | 342 | interrupt-names = "common", "tx", "rx", "sidetone"; |
278 | ti,buffer-size = <128>; | 343 | ti,buffer-size = <128>; |
279 | ti,hwmods = "mcbsp3", "mcbsp3_sidetone"; | 344 | ti,hwmods = "mcbsp3", "mcbsp3_sidetone"; |
345 | dmas = <&sdma 17>, | ||
346 | <&sdma 18>; | ||
347 | dma-names = "tx", "rx"; | ||
280 | }; | 348 | }; |
281 | 349 | ||
282 | mcbsp4: mcbsp@49026000 { | 350 | mcbsp4: mcbsp@49026000 { |
@@ -289,6 +357,9 @@ | |||
289 | interrupt-names = "common", "tx", "rx"; | 357 | interrupt-names = "common", "tx", "rx"; |
290 | ti,buffer-size = <128>; | 358 | ti,buffer-size = <128>; |
291 | ti,hwmods = "mcbsp4"; | 359 | ti,hwmods = "mcbsp4"; |
360 | dmas = <&sdma 19>, | ||
361 | <&sdma 20>; | ||
362 | dma-names = "tx", "rx"; | ||
292 | }; | 363 | }; |
293 | 364 | ||
294 | mcbsp5: mcbsp@48096000 { | 365 | mcbsp5: mcbsp@48096000 { |
@@ -301,10 +372,13 @@ | |||
301 | interrupt-names = "common", "tx", "rx"; | 372 | interrupt-names = "common", "tx", "rx"; |
302 | ti,buffer-size = <128>; | 373 | ti,buffer-size = <128>; |
303 | ti,hwmods = "mcbsp5"; | 374 | ti,hwmods = "mcbsp5"; |
375 | dmas = <&sdma 21>, | ||
376 | <&sdma 22>; | ||
377 | dma-names = "tx", "rx"; | ||
304 | }; | 378 | }; |
305 | 379 | ||
306 | timer1: timer@48318000 { | 380 | timer1: timer@48318000 { |
307 | compatible = "ti,omap2-timer"; | 381 | compatible = "ti,omap3430-timer"; |
308 | reg = <0x48318000 0x400>; | 382 | reg = <0x48318000 0x400>; |
309 | interrupts = <37>; | 383 | interrupts = <37>; |
310 | ti,hwmods = "timer1"; | 384 | ti,hwmods = "timer1"; |
@@ -312,28 +386,28 @@ | |||
312 | }; | 386 | }; |
313 | 387 | ||
314 | timer2: timer@49032000 { | 388 | timer2: timer@49032000 { |
315 | compatible = "ti,omap2-timer"; | 389 | compatible = "ti,omap3430-timer"; |
316 | reg = <0x49032000 0x400>; | 390 | reg = <0x49032000 0x400>; |
317 | interrupts = <38>; | 391 | interrupts = <38>; |
318 | ti,hwmods = "timer2"; | 392 | ti,hwmods = "timer2"; |
319 | }; | 393 | }; |
320 | 394 | ||
321 | timer3: timer@49034000 { | 395 | timer3: timer@49034000 { |
322 | compatible = "ti,omap2-timer"; | 396 | compatible = "ti,omap3430-timer"; |
323 | reg = <0x49034000 0x400>; | 397 | reg = <0x49034000 0x400>; |
324 | interrupts = <39>; | 398 | interrupts = <39>; |
325 | ti,hwmods = "timer3"; | 399 | ti,hwmods = "timer3"; |
326 | }; | 400 | }; |
327 | 401 | ||
328 | timer4: timer@49036000 { | 402 | timer4: timer@49036000 { |
329 | compatible = "ti,omap2-timer"; | 403 | compatible = "ti,omap3430-timer"; |
330 | reg = <0x49036000 0x400>; | 404 | reg = <0x49036000 0x400>; |
331 | interrupts = <40>; | 405 | interrupts = <40>; |
332 | ti,hwmods = "timer4"; | 406 | ti,hwmods = "timer4"; |
333 | }; | 407 | }; |
334 | 408 | ||
335 | timer5: timer@49038000 { | 409 | timer5: timer@49038000 { |
336 | compatible = "ti,omap2-timer"; | 410 | compatible = "ti,omap3430-timer"; |
337 | reg = <0x49038000 0x400>; | 411 | reg = <0x49038000 0x400>; |
338 | interrupts = <41>; | 412 | interrupts = <41>; |
339 | ti,hwmods = "timer5"; | 413 | ti,hwmods = "timer5"; |
@@ -341,7 +415,7 @@ | |||
341 | }; | 415 | }; |
342 | 416 | ||
343 | timer6: timer@4903a000 { | 417 | timer6: timer@4903a000 { |
344 | compatible = "ti,omap2-timer"; | 418 | compatible = "ti,omap3430-timer"; |
345 | reg = <0x4903a000 0x400>; | 419 | reg = <0x4903a000 0x400>; |
346 | interrupts = <42>; | 420 | interrupts = <42>; |
347 | ti,hwmods = "timer6"; | 421 | ti,hwmods = "timer6"; |
@@ -349,7 +423,7 @@ | |||
349 | }; | 423 | }; |
350 | 424 | ||
351 | timer7: timer@4903c000 { | 425 | timer7: timer@4903c000 { |
352 | compatible = "ti,omap2-timer"; | 426 | compatible = "ti,omap3430-timer"; |
353 | reg = <0x4903c000 0x400>; | 427 | reg = <0x4903c000 0x400>; |
354 | interrupts = <43>; | 428 | interrupts = <43>; |
355 | ti,hwmods = "timer7"; | 429 | ti,hwmods = "timer7"; |
@@ -357,7 +431,7 @@ | |||
357 | }; | 431 | }; |
358 | 432 | ||
359 | timer8: timer@4903e000 { | 433 | timer8: timer@4903e000 { |
360 | compatible = "ti,omap2-timer"; | 434 | compatible = "ti,omap3430-timer"; |
361 | reg = <0x4903e000 0x400>; | 435 | reg = <0x4903e000 0x400>; |
362 | interrupts = <44>; | 436 | interrupts = <44>; |
363 | ti,hwmods = "timer8"; | 437 | ti,hwmods = "timer8"; |
@@ -366,7 +440,7 @@ | |||
366 | }; | 440 | }; |
367 | 441 | ||
368 | timer9: timer@49040000 { | 442 | timer9: timer@49040000 { |
369 | compatible = "ti,omap2-timer"; | 443 | compatible = "ti,omap3430-timer"; |
370 | reg = <0x49040000 0x400>; | 444 | reg = <0x49040000 0x400>; |
371 | interrupts = <45>; | 445 | interrupts = <45>; |
372 | ti,hwmods = "timer9"; | 446 | ti,hwmods = "timer9"; |
@@ -374,7 +448,7 @@ | |||
374 | }; | 448 | }; |
375 | 449 | ||
376 | timer10: timer@48086000 { | 450 | timer10: timer@48086000 { |
377 | compatible = "ti,omap2-timer"; | 451 | compatible = "ti,omap3430-timer"; |
378 | reg = <0x48086000 0x400>; | 452 | reg = <0x48086000 0x400>; |
379 | interrupts = <46>; | 453 | interrupts = <46>; |
380 | ti,hwmods = "timer10"; | 454 | ti,hwmods = "timer10"; |
@@ -382,7 +456,7 @@ | |||
382 | }; | 456 | }; |
383 | 457 | ||
384 | timer11: timer@48088000 { | 458 | timer11: timer@48088000 { |
385 | compatible = "ti,omap2-timer"; | 459 | compatible = "ti,omap3430-timer"; |
386 | reg = <0x48088000 0x400>; | 460 | reg = <0x48088000 0x400>; |
387 | interrupts = <47>; | 461 | interrupts = <47>; |
388 | ti,hwmods = "timer11"; | 462 | ti,hwmods = "timer11"; |
@@ -390,7 +464,7 @@ | |||
390 | }; | 464 | }; |
391 | 465 | ||
392 | timer12: timer@48304000 { | 466 | timer12: timer@48304000 { |
393 | compatible = "ti,omap2-timer"; | 467 | compatible = "ti,omap3430-timer"; |
394 | reg = <0x48304000 0x400>; | 468 | reg = <0x48304000 0x400>; |
395 | interrupts = <95>; | 469 | interrupts = <95>; |
396 | ti,hwmods = "timer12"; | 470 | ti,hwmods = "timer12"; |
@@ -428,5 +502,27 @@ | |||
428 | }; | 502 | }; |
429 | }; | 503 | }; |
430 | 504 | ||
505 | gpmc: gpmc@6e000000 { | ||
506 | compatible = "ti,omap3430-gpmc"; | ||
507 | ti,hwmods = "gpmc"; | ||
508 | reg = <0x6e000000 0x02d0>; | ||
509 | interrupts = <20>; | ||
510 | gpmc,num-cs = <8>; | ||
511 | gpmc,num-waitpins = <4>; | ||
512 | #address-cells = <2>; | ||
513 | #size-cells = <1>; | ||
514 | }; | ||
515 | |||
516 | usb_otg_hs: usb_otg_hs@480ab000 { | ||
517 | compatible = "ti,omap3-musb"; | ||
518 | reg = <0x480ab000 0x1000>; | ||
519 | interrupts = <0 92 0x4>, <0 93 0x4>; | ||
520 | interrupt-names = "mc", "dma"; | ||
521 | ti,hwmods = "usb_otg_hs"; | ||
522 | usb-phy = <&usb2_phy>; | ||
523 | multipoint = <1>; | ||
524 | num-eps = <16>; | ||
525 | ram-bits = <12>; | ||
526 | }; | ||
431 | }; | 527 | }; |
432 | }; | 528 | }; |
diff --git a/arch/arm/boot/dts/omap3430-sdp.dts b/arch/arm/boot/dts/omap3430-sdp.dts new file mode 100644 index 000000000000..144ae43453c4 --- /dev/null +++ b/arch/arm/boot/dts/omap3430-sdp.dts | |||
@@ -0,0 +1,190 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | |||
10 | /include/ "omap34xx.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "TI OMAP3430 SDP"; | ||
14 | compatible = "ti,omap3430-sdp", "ti,omap3"; | ||
15 | |||
16 | memory { | ||
17 | device_type = "memory"; | ||
18 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | &i2c1 { | ||
23 | clock-frequency = <2600000>; | ||
24 | |||
25 | twl: twl@48 { | ||
26 | reg = <0x48>; | ||
27 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
28 | }; | ||
29 | }; | ||
30 | |||
31 | /include/ "twl4030.dtsi" | ||
32 | |||
33 | &mmc1 { | ||
34 | vmmc-supply = <&vmmc1>; | ||
35 | vmmc_aux-supply = <&vsim>; | ||
36 | bus-width = <8>; | ||
37 | }; | ||
38 | |||
39 | &mmc2 { | ||
40 | status = "disabled"; | ||
41 | }; | ||
42 | |||
43 | &mmc3 { | ||
44 | status = "disabled"; | ||
45 | }; | ||
46 | |||
47 | &gpmc { | ||
48 | ranges = <0 0 0x10000000 0x08000000>, | ||
49 | <1 0 0x28000000 0x08000000>, | ||
50 | <2 0 0x20000000 0x10000000>; | ||
51 | |||
52 | nor@0,0 { | ||
53 | compatible = "cfi-flash"; | ||
54 | linux,mtd-name= "intel,pf48f6000m0y1be"; | ||
55 | #address-cells = <1>; | ||
56 | #size-cells = <1>; | ||
57 | reg = <0 0 0x08000000>; | ||
58 | bank-width = <2>; | ||
59 | |||
60 | gpmc,mux-add-data = <2>; | ||
61 | gpmc,cs-on-ns = <0>; | ||
62 | gpmc,cs-rd-off-ns = <186>; | ||
63 | gpmc,cs-wr-off-ns = <186>; | ||
64 | gpmc,adv-on-ns = <12>; | ||
65 | gpmc,adv-rd-off-ns = <48>; | ||
66 | gpmc,adv-wr-off-ns = <48>; | ||
67 | gpmc,oe-on-ns = <54>; | ||
68 | gpmc,oe-off-ns = <168>; | ||
69 | gpmc,we-on-ns = <54>; | ||
70 | gpmc,we-off-ns = <168>; | ||
71 | gpmc,rd-cycle-ns = <186>; | ||
72 | gpmc,wr-cycle-ns = <186>; | ||
73 | gpmc,access-ns = <114>; | ||
74 | gpmc,page-burst-access-ns = <6>; | ||
75 | gpmc,bus-turnaround-ns = <12>; | ||
76 | gpmc,cycle2cycle-delay-ns = <18>; | ||
77 | gpmc,wr-data-mux-bus-ns = <90>; | ||
78 | gpmc,wr-access-ns = <186>; | ||
79 | gpmc,cycle2cycle-samecsen; | ||
80 | gpmc,cycle2cycle-diffcsen; | ||
81 | |||
82 | partition@0 { | ||
83 | label = "bootloader-nor"; | ||
84 | reg = <0 0x40000>; | ||
85 | }; | ||
86 | partition@0x40000 { | ||
87 | label = "params-nor"; | ||
88 | reg = <0x40000 0x40000>; | ||
89 | }; | ||
90 | partition@0x80000 { | ||
91 | label = "kernel-nor"; | ||
92 | reg = <0x80000 0x200000>; | ||
93 | }; | ||
94 | partition@0x280000 { | ||
95 | label = "filesystem-nor"; | ||
96 | reg = <0x240000 0x7d80000>; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | nand@1,0 { | ||
101 | linux,mtd-name= "micron,mt29f1g08abb"; | ||
102 | #address-cells = <1>; | ||
103 | #size-cells = <1>; | ||
104 | reg = <1 0 0x08000000>; | ||
105 | nand-bus-width = <8>; | ||
106 | |||
107 | ti,nand-ecc-opt = "sw"; | ||
108 | gpmc,device-nand; | ||
109 | gpmc,cs-on-ns = <0>; | ||
110 | gpmc,cs-rd-off-ns = <36>; | ||
111 | gpmc,cs-wr-off-ns = <36>; | ||
112 | gpmc,adv-on-ns = <6>; | ||
113 | gpmc,adv-rd-off-ns = <24>; | ||
114 | gpmc,adv-wr-off-ns = <36>; | ||
115 | gpmc,oe-on-ns = <6>; | ||
116 | gpmc,oe-off-ns = <48>; | ||
117 | gpmc,we-on-ns = <6>; | ||
118 | gpmc,we-off-ns = <30>; | ||
119 | gpmc,rd-cycle-ns = <72>; | ||
120 | gpmc,wr-cycle-ns = <72>; | ||
121 | gpmc,access-ns = <54>; | ||
122 | gpmc,wr-access-ns = <30>; | ||
123 | |||
124 | partition@0 { | ||
125 | label = "xloader-nand"; | ||
126 | reg = <0 0x80000>; | ||
127 | }; | ||
128 | partition@0x80000 { | ||
129 | label = "bootloader-nand"; | ||
130 | reg = <0x80000 0x140000>; | ||
131 | }; | ||
132 | partition@0x1c0000 { | ||
133 | label = "params-nand"; | ||
134 | reg = <0x1c0000 0xc0000>; | ||
135 | }; | ||
136 | partition@0x280000 { | ||
137 | label = "kernel-nand"; | ||
138 | reg = <0x280000 0x500000>; | ||
139 | }; | ||
140 | partition@0x780000 { | ||
141 | label = "filesystem-nand"; | ||
142 | reg = <0x780000 0x7880000>; | ||
143 | }; | ||
144 | }; | ||
145 | |||
146 | onenand@2,0 { | ||
147 | linux,mtd-name= "samsung,kfm2g16q2m-deb8"; | ||
148 | #address-cells = <1>; | ||
149 | #size-cells = <1>; | ||
150 | reg = <2 0 0x10000000>; | ||
151 | |||
152 | gpmc,device-width = <2>; | ||
153 | gpmc,mux-add-data = <2>; | ||
154 | gpmc,cs-on-ns = <0>; | ||
155 | gpmc,cs-rd-off-ns = <84>; | ||
156 | gpmc,cs-wr-off-ns = <72>; | ||
157 | gpmc,adv-on-ns = <0>; | ||
158 | gpmc,adv-rd-off-ns = <18>; | ||
159 | gpmc,adv-wr-off-ns = <18>; | ||
160 | gpmc,oe-on-ns = <30>; | ||
161 | gpmc,oe-off-ns = <84>; | ||
162 | gpmc,we-on-ns = <0>; | ||
163 | gpmc,we-off-ns = <42>; | ||
164 | gpmc,rd-cycle-ns = <108>; | ||
165 | gpmc,wr-cycle-ns = <96>; | ||
166 | gpmc,access-ns = <78>; | ||
167 | gpmc,wr-data-mux-bus-ns = <30>; | ||
168 | |||
169 | partition@0 { | ||
170 | label = "xloader-onenand"; | ||
171 | reg = <0 0x80000>; | ||
172 | }; | ||
173 | partition@0x80000 { | ||
174 | label = "bootloader-onenand"; | ||
175 | reg = <0x80000 0x40000>; | ||
176 | }; | ||
177 | partition@0xc0000 { | ||
178 | label = "params-onenand"; | ||
179 | reg = <0xc0000 0x20000>; | ||
180 | }; | ||
181 | partition@0xe0000 { | ||
182 | label = "kernel-onenand"; | ||
183 | reg = <0xe0000 0x200000>; | ||
184 | }; | ||
185 | partition@0x2e0000 { | ||
186 | label = "filesystem-onenand"; | ||
187 | reg = <0x2e0000 0xfd20000>; | ||
188 | }; | ||
189 | }; | ||
190 | }; | ||
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi new file mode 100644 index 000000000000..75ed4ae2e631 --- /dev/null +++ b/arch/arm/boot/dts/omap34xx.dtsi | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * Device Tree Source for OMAP34xx/OMAP35xx SoC | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /include/ "omap3.dtsi" | ||
12 | |||
13 | / { | ||
14 | cpus { | ||
15 | cpu@0 { | ||
16 | /* OMAP343x/OMAP35xx variants OPP1-5 */ | ||
17 | operating-points = < | ||
18 | /* kHz uV */ | ||
19 | 125000 975000 | ||
20 | 250000 1075000 | ||
21 | 500000 1200000 | ||
22 | 550000 1270000 | ||
23 | 600000 1350000 | ||
24 | >; | ||
25 | clock-latency = <300000>; /* From legacy driver */ | ||
26 | }; | ||
27 | }; | ||
28 | }; | ||
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi index 96bf0287cb9f..b89233e43b0f 100644 --- a/arch/arm/boot/dts/omap36xx.dtsi +++ b/arch/arm/boot/dts/omap36xx.dtsi | |||
@@ -15,6 +15,19 @@ | |||
15 | serial3 = &uart4; | 15 | serial3 = &uart4; |
16 | }; | 16 | }; |
17 | 17 | ||
18 | cpus { | ||
19 | /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */ | ||
20 | cpu@0 { | ||
21 | operating-points = < | ||
22 | /* kHz uV */ | ||
23 | 300000 975000 | ||
24 | 600000 1075000 | ||
25 | 800000 1200000 | ||
26 | >; | ||
27 | clock-latency = <300000>; /* From legacy driver */ | ||
28 | }; | ||
29 | }; | ||
30 | |||
18 | ocp { | 31 | ocp { |
19 | uart4: serial@49042000 { | 32 | uart4: serial@49042000 { |
20 | compatible = "ti,omap3-uart"; | 33 | compatible = "ti,omap3-uart"; |
diff --git a/arch/arm/boot/dts/omap4-panda-a4.dts b/arch/arm/boot/dts/omap4-panda-a4.dts index 75466d2abfb5..e30cdf0f5ac1 100644 --- a/arch/arm/boot/dts/omap4-panda-a4.dts +++ b/arch/arm/boot/dts/omap4-panda-a4.dts | |||
@@ -5,7 +5,10 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | /include/ "omap4-panda.dts" | 8 | /dts-v1/; |
9 | |||
10 | /include/ "omap443x.dtsi" | ||
11 | /include/ "omap4-panda-common.dtsi" | ||
9 | 12 | ||
10 | /* Pandaboard Rev A4+ have external pullups on SCL & SDA */ | 13 | /* Pandaboard Rev A4+ have external pullups on SCL & SDA */ |
11 | &dss_hdmi_pins { | 14 | &dss_hdmi_pins { |
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi new file mode 100644 index 000000000000..03bd60deb52b --- /dev/null +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi | |||
@@ -0,0 +1,251 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /include/ "elpida_ecb240abacn.dtsi" | ||
9 | |||
10 | / { | ||
11 | model = "TI OMAP4 PandaBoard"; | ||
12 | compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"; | ||
13 | |||
14 | memory { | ||
15 | device_type = "memory"; | ||
16 | reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
17 | }; | ||
18 | |||
19 | leds { | ||
20 | compatible = "gpio-leds"; | ||
21 | heartbeat { | ||
22 | label = "pandaboard::status1"; | ||
23 | gpios = <&gpio1 7 0>; | ||
24 | linux,default-trigger = "heartbeat"; | ||
25 | }; | ||
26 | |||
27 | mmc { | ||
28 | label = "pandaboard::status2"; | ||
29 | gpios = <&gpio1 8 0>; | ||
30 | linux,default-trigger = "mmc0"; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | sound: sound { | ||
35 | compatible = "ti,abe-twl6040"; | ||
36 | ti,model = "PandaBoard"; | ||
37 | |||
38 | ti,mclk-freq = <38400000>; | ||
39 | |||
40 | ti,mcpdm = <&mcpdm>; | ||
41 | |||
42 | ti,twl6040 = <&twl6040>; | ||
43 | |||
44 | /* Audio routing */ | ||
45 | ti,audio-routing = | ||
46 | "Headset Stereophone", "HSOL", | ||
47 | "Headset Stereophone", "HSOR", | ||
48 | "Ext Spk", "HFL", | ||
49 | "Ext Spk", "HFR", | ||
50 | "Line Out", "AUXL", | ||
51 | "Line Out", "AUXR", | ||
52 | "HSMIC", "Headset Mic", | ||
53 | "Headset Mic", "Headset Mic Bias", | ||
54 | "AFML", "Line In", | ||
55 | "AFMR", "Line In"; | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | &omap4_pmx_core { | ||
60 | pinctrl-names = "default"; | ||
61 | pinctrl-0 = < | ||
62 | &twl6040_pins | ||
63 | &mcpdm_pins | ||
64 | &mcbsp1_pins | ||
65 | &dss_hdmi_pins | ||
66 | &tpd12s015_pins | ||
67 | >; | ||
68 | |||
69 | twl6040_pins: pinmux_twl6040_pins { | ||
70 | pinctrl-single,pins = < | ||
71 | 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ | ||
72 | 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ | ||
73 | >; | ||
74 | }; | ||
75 | |||
76 | mcpdm_pins: pinmux_mcpdm_pins { | ||
77 | pinctrl-single,pins = < | ||
78 | 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
79 | 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
80 | 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ | ||
81 | 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
82 | 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
83 | >; | ||
84 | }; | ||
85 | |||
86 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
87 | pinctrl-single,pins = < | ||
88 | 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ | ||
89 | 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ | ||
90 | 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ | ||
91 | 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ | ||
92 | >; | ||
93 | }; | ||
94 | |||
95 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | ||
96 | pinctrl-single,pins = < | ||
97 | 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ | ||
98 | 0x5c 0x118 /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */ | ||
99 | 0x5e 0x118 /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */ | ||
100 | >; | ||
101 | }; | ||
102 | |||
103 | tpd12s015_pins: pinmux_tpd12s015_pins { | ||
104 | pinctrl-single,pins = < | ||
105 | 0x22 0x3 /* gpmc_a17.gpio_41 OUTPUT | MODE3 */ | ||
106 | 0x48 0x3 /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */ | ||
107 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ | ||
108 | >; | ||
109 | }; | ||
110 | |||
111 | i2c1_pins: pinmux_i2c1_pins { | ||
112 | pinctrl-single,pins = < | ||
113 | 0xe2 0x118 /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */ | ||
114 | 0xe4 0x118 /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */ | ||
115 | >; | ||
116 | }; | ||
117 | |||
118 | i2c2_pins: pinmux_i2c2_pins { | ||
119 | pinctrl-single,pins = < | ||
120 | 0xe6 0x118 /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */ | ||
121 | 0xe8 0x118 /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */ | ||
122 | >; | ||
123 | }; | ||
124 | |||
125 | i2c3_pins: pinmux_i2c3_pins { | ||
126 | pinctrl-single,pins = < | ||
127 | 0xea 0x118 /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */ | ||
128 | 0xec 0x118 /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */ | ||
129 | >; | ||
130 | }; | ||
131 | |||
132 | i2c4_pins: pinmux_i2c4_pins { | ||
133 | pinctrl-single,pins = < | ||
134 | 0xee 0x118 /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */ | ||
135 | 0xf0 0x118 /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */ | ||
136 | >; | ||
137 | }; | ||
138 | }; | ||
139 | |||
140 | &i2c1 { | ||
141 | pinctrl-names = "default"; | ||
142 | pinctrl-0 = <&i2c1_pins>; | ||
143 | |||
144 | clock-frequency = <400000>; | ||
145 | |||
146 | twl: twl@48 { | ||
147 | reg = <0x48>; | ||
148 | /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */ | ||
149 | interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */ | ||
150 | interrupt-parent = <&gic>; | ||
151 | }; | ||
152 | |||
153 | twl6040: twl@4b { | ||
154 | compatible = "ti,twl6040"; | ||
155 | reg = <0x4b>; | ||
156 | /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */ | ||
157 | interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */ | ||
158 | interrupt-parent = <&gic>; | ||
159 | ti,audpwron-gpio = <&gpio4 31 0>; /* gpio line 127 */ | ||
160 | |||
161 | vio-supply = <&v1v8>; | ||
162 | v2v1-supply = <&v2v1>; | ||
163 | enable-active-high; | ||
164 | }; | ||
165 | }; | ||
166 | |||
167 | /include/ "twl6030.dtsi" | ||
168 | |||
169 | &i2c2 { | ||
170 | pinctrl-names = "default"; | ||
171 | pinctrl-0 = <&i2c2_pins>; | ||
172 | |||
173 | clock-frequency = <400000>; | ||
174 | }; | ||
175 | |||
176 | &i2c3 { | ||
177 | pinctrl-names = "default"; | ||
178 | pinctrl-0 = <&i2c3_pins>; | ||
179 | |||
180 | clock-frequency = <100000>; | ||
181 | |||
182 | /* | ||
183 | * Display monitor features are burnt in their EEPROM as EDID data. | ||
184 | * The EEPROM is connected as I2C slave device. | ||
185 | */ | ||
186 | eeprom@50 { | ||
187 | compatible = "ti,eeprom"; | ||
188 | reg = <0x50>; | ||
189 | }; | ||
190 | }; | ||
191 | |||
192 | &i2c4 { | ||
193 | pinctrl-names = "default"; | ||
194 | pinctrl-0 = <&i2c4_pins>; | ||
195 | |||
196 | clock-frequency = <400000>; | ||
197 | }; | ||
198 | |||
199 | &mmc1 { | ||
200 | vmmc-supply = <&vmmc>; | ||
201 | bus-width = <8>; | ||
202 | }; | ||
203 | |||
204 | &mmc2 { | ||
205 | status = "disabled"; | ||
206 | }; | ||
207 | |||
208 | &mmc3 { | ||
209 | status = "disabled"; | ||
210 | }; | ||
211 | |||
212 | &mmc4 { | ||
213 | status = "disabled"; | ||
214 | }; | ||
215 | |||
216 | &mmc5 { | ||
217 | ti,non-removable; | ||
218 | bus-width = <4>; | ||
219 | }; | ||
220 | |||
221 | &emif1 { | ||
222 | cs1-used; | ||
223 | device-handle = <&elpida_ECB240ABACN>; | ||
224 | }; | ||
225 | |||
226 | &emif2 { | ||
227 | cs1-used; | ||
228 | device-handle = <&elpida_ECB240ABACN>; | ||
229 | }; | ||
230 | |||
231 | &mcbsp2 { | ||
232 | status = "disabled"; | ||
233 | }; | ||
234 | |||
235 | &mcbsp3 { | ||
236 | status = "disabled"; | ||
237 | }; | ||
238 | |||
239 | &dmic { | ||
240 | status = "disabled"; | ||
241 | }; | ||
242 | |||
243 | &twl_usb_comparator { | ||
244 | usb-supply = <&vusb>; | ||
245 | }; | ||
246 | |||
247 | &usb_otg_hs { | ||
248 | interface-type = <1>; | ||
249 | mode = <3>; | ||
250 | power = <50>; | ||
251 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts index 73bc1a67e444..f1d8c217ce12 100644 --- a/arch/arm/boot/dts/omap4-panda-es.dts +++ b/arch/arm/boot/dts/omap4-panda-es.dts | |||
@@ -5,7 +5,10 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | /include/ "omap4-panda.dts" | 8 | /dts-v1/; |
9 | |||
10 | /include/ "omap4460.dtsi" | ||
11 | /include/ "omap4-panda-common.dtsi" | ||
9 | 12 | ||
10 | /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */ | 13 | /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */ |
11 | &sound { | 14 | &sound { |
diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts index 4122efe31cfd..f8b221f0168e 100644 --- a/arch/arm/boot/dts/omap4-panda.dts +++ b/arch/arm/boot/dts/omap4-panda.dts | |||
@@ -7,202 +7,5 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap4.dtsi" | 10 | /include/ "omap443x.dtsi" |
11 | /include/ "elpida_ecb240abacn.dtsi" | 11 | /include/ "omap4-panda-common.dtsi" |
12 | |||
13 | / { | ||
14 | model = "TI OMAP4 PandaBoard"; | ||
15 | compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"; | ||
16 | |||
17 | memory { | ||
18 | device_type = "memory"; | ||
19 | reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
20 | }; | ||
21 | |||
22 | leds { | ||
23 | compatible = "gpio-leds"; | ||
24 | heartbeat { | ||
25 | label = "pandaboard::status1"; | ||
26 | gpios = <&gpio1 7 0>; | ||
27 | linux,default-trigger = "heartbeat"; | ||
28 | }; | ||
29 | |||
30 | mmc { | ||
31 | label = "pandaboard::status2"; | ||
32 | gpios = <&gpio1 8 0>; | ||
33 | linux,default-trigger = "mmc0"; | ||
34 | }; | ||
35 | }; | ||
36 | |||
37 | sound: sound { | ||
38 | compatible = "ti,abe-twl6040"; | ||
39 | ti,model = "PandaBoard"; | ||
40 | |||
41 | ti,mclk-freq = <38400000>; | ||
42 | |||
43 | ti,mcpdm = <&mcpdm>; | ||
44 | |||
45 | ti,twl6040 = <&twl6040>; | ||
46 | |||
47 | /* Audio routing */ | ||
48 | ti,audio-routing = | ||
49 | "Headset Stereophone", "HSOL", | ||
50 | "Headset Stereophone", "HSOR", | ||
51 | "Ext Spk", "HFL", | ||
52 | "Ext Spk", "HFR", | ||
53 | "Line Out", "AUXL", | ||
54 | "Line Out", "AUXR", | ||
55 | "HSMIC", "Headset Mic", | ||
56 | "Headset Mic", "Headset Mic Bias", | ||
57 | "AFML", "Line In", | ||
58 | "AFMR", "Line In"; | ||
59 | }; | ||
60 | }; | ||
61 | |||
62 | &omap4_pmx_core { | ||
63 | pinctrl-names = "default"; | ||
64 | pinctrl-0 = < | ||
65 | &twl6040_pins | ||
66 | &mcpdm_pins | ||
67 | &mcbsp1_pins | ||
68 | &dss_hdmi_pins | ||
69 | &tpd12s015_pins | ||
70 | >; | ||
71 | |||
72 | twl6040_pins: pinmux_twl6040_pins { | ||
73 | pinctrl-single,pins = < | ||
74 | 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ | ||
75 | 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ | ||
76 | >; | ||
77 | }; | ||
78 | |||
79 | mcpdm_pins: pinmux_mcpdm_pins { | ||
80 | pinctrl-single,pins = < | ||
81 | 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
82 | 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
83 | 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ | ||
84 | 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
85 | 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
86 | >; | ||
87 | }; | ||
88 | |||
89 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
90 | pinctrl-single,pins = < | ||
91 | 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ | ||
92 | 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ | ||
93 | 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ | ||
94 | 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ | ||
95 | >; | ||
96 | }; | ||
97 | |||
98 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | ||
99 | pinctrl-single,pins = < | ||
100 | 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ | ||
101 | 0x5c 0x118 /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */ | ||
102 | 0x5e 0x118 /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */ | ||
103 | >; | ||
104 | }; | ||
105 | |||
106 | tpd12s015_pins: pinmux_tpd12s015_pins { | ||
107 | pinctrl-single,pins = < | ||
108 | 0x22 0x3 /* gpmc_a17.gpio_41 OUTPUT | MODE3 */ | ||
109 | 0x48 0x3 /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */ | ||
110 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ | ||
111 | >; | ||
112 | }; | ||
113 | }; | ||
114 | |||
115 | &i2c1 { | ||
116 | clock-frequency = <400000>; | ||
117 | |||
118 | twl: twl@48 { | ||
119 | reg = <0x48>; | ||
120 | /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */ | ||
121 | interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */ | ||
122 | interrupt-parent = <&gic>; | ||
123 | }; | ||
124 | |||
125 | twl6040: twl@4b { | ||
126 | compatible = "ti,twl6040"; | ||
127 | reg = <0x4b>; | ||
128 | /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */ | ||
129 | interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */ | ||
130 | interrupt-parent = <&gic>; | ||
131 | ti,audpwron-gpio = <&gpio4 31 0>; /* gpio line 127 */ | ||
132 | |||
133 | vio-supply = <&v1v8>; | ||
134 | v2v1-supply = <&v2v1>; | ||
135 | enable-active-high; | ||
136 | }; | ||
137 | }; | ||
138 | |||
139 | /include/ "twl6030.dtsi" | ||
140 | |||
141 | &i2c2 { | ||
142 | clock-frequency = <400000>; | ||
143 | }; | ||
144 | |||
145 | &i2c3 { | ||
146 | clock-frequency = <100000>; | ||
147 | |||
148 | /* | ||
149 | * Display monitor features are burnt in their EEPROM as EDID data. | ||
150 | * The EEPROM is connected as I2C slave device. | ||
151 | */ | ||
152 | eeprom@50 { | ||
153 | compatible = "ti,eeprom"; | ||
154 | reg = <0x50>; | ||
155 | }; | ||
156 | }; | ||
157 | |||
158 | &i2c4 { | ||
159 | clock-frequency = <400000>; | ||
160 | }; | ||
161 | |||
162 | &mmc1 { | ||
163 | vmmc-supply = <&vmmc>; | ||
164 | bus-width = <8>; | ||
165 | }; | ||
166 | |||
167 | &mmc2 { | ||
168 | status = "disabled"; | ||
169 | }; | ||
170 | |||
171 | &mmc3 { | ||
172 | status = "disabled"; | ||
173 | }; | ||
174 | |||
175 | &mmc4 { | ||
176 | status = "disabled"; | ||
177 | }; | ||
178 | |||
179 | &mmc5 { | ||
180 | ti,non-removable; | ||
181 | bus-width = <4>; | ||
182 | }; | ||
183 | |||
184 | &emif1 { | ||
185 | cs1-used; | ||
186 | device-handle = <&elpida_ECB240ABACN>; | ||
187 | }; | ||
188 | |||
189 | &emif2 { | ||
190 | cs1-used; | ||
191 | device-handle = <&elpida_ECB240ABACN>; | ||
192 | }; | ||
193 | |||
194 | &mcbsp2 { | ||
195 | status = "disabled"; | ||
196 | }; | ||
197 | |||
198 | &mcbsp3 { | ||
199 | status = "disabled"; | ||
200 | }; | ||
201 | |||
202 | &dmic { | ||
203 | status = "disabled"; | ||
204 | }; | ||
205 | |||
206 | &twl_usb_comparator { | ||
207 | usb-supply = <&vusb>; | ||
208 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index 43e5258a9372..c387bdc1b1d1 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap4.dtsi" | 10 | /include/ "omap443x.dtsi" |
11 | /include/ "elpida_ecb240abacn.dtsi" | 11 | /include/ "elpida_ecb240abacn.dtsi" |
12 | 12 | ||
13 | / { | 13 | / { |
@@ -80,6 +80,32 @@ | |||
80 | }; | 80 | }; |
81 | }; | 81 | }; |
82 | 82 | ||
83 | pwmleds { | ||
84 | compatible = "pwm-leds"; | ||
85 | kpad { | ||
86 | label = "omap4::keypad"; | ||
87 | pwms = <&twl_pwm 0 7812500>; | ||
88 | max-brightness = <127>; | ||
89 | }; | ||
90 | |||
91 | charging { | ||
92 | label = "omap4:green:chrg"; | ||
93 | pwms = <&twl_pwmled 0 7812500>; | ||
94 | max-brightness = <255>; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | backlight { | ||
99 | compatible = "pwm-backlight"; | ||
100 | pwms = <&twl_pwm 1 7812500>; | ||
101 | brightness-levels = < | ||
102 | 0 10 20 30 40 | ||
103 | 50 60 70 80 90 | ||
104 | 100 110 120 127 | ||
105 | >; | ||
106 | default-brightness-level = <13>; | ||
107 | }; | ||
108 | |||
83 | sound { | 109 | sound { |
84 | compatible = "ti,abe-twl6040"; | 110 | compatible = "ti,abe-twl6040"; |
85 | ti,model = "SDP4430"; | 111 | ti,model = "SDP4430"; |
@@ -212,9 +238,40 @@ | |||
212 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ | 238 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ |
213 | >; | 239 | >; |
214 | }; | 240 | }; |
241 | |||
242 | i2c1_pins: pinmux_i2c1_pins { | ||
243 | pinctrl-single,pins = < | ||
244 | 0xe2 0x118 /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */ | ||
245 | 0xe4 0x118 /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */ | ||
246 | >; | ||
247 | }; | ||
248 | |||
249 | i2c2_pins: pinmux_i2c2_pins { | ||
250 | pinctrl-single,pins = < | ||
251 | 0xe6 0x118 /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */ | ||
252 | 0xe8 0x118 /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */ | ||
253 | >; | ||
254 | }; | ||
255 | |||
256 | i2c3_pins: pinmux_i2c3_pins { | ||
257 | pinctrl-single,pins = < | ||
258 | 0xea 0x118 /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */ | ||
259 | 0xec 0x118 /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */ | ||
260 | >; | ||
261 | }; | ||
262 | |||
263 | i2c4_pins: pinmux_i2c4_pins { | ||
264 | pinctrl-single,pins = < | ||
265 | 0xee 0x118 /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */ | ||
266 | 0xf0 0x118 /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */ | ||
267 | >; | ||
268 | }; | ||
215 | }; | 269 | }; |
216 | 270 | ||
217 | &i2c1 { | 271 | &i2c1 { |
272 | pinctrl-names = "default"; | ||
273 | pinctrl-0 = <&i2c1_pins>; | ||
274 | |||
218 | clock-frequency = <400000>; | 275 | clock-frequency = <400000>; |
219 | 276 | ||
220 | twl: twl@48 { | 277 | twl: twl@48 { |
@@ -253,10 +310,16 @@ | |||
253 | /include/ "twl6030.dtsi" | 310 | /include/ "twl6030.dtsi" |
254 | 311 | ||
255 | &i2c2 { | 312 | &i2c2 { |
313 | pinctrl-names = "default"; | ||
314 | pinctrl-0 = <&i2c2_pins>; | ||
315 | |||
256 | clock-frequency = <400000>; | 316 | clock-frequency = <400000>; |
257 | }; | 317 | }; |
258 | 318 | ||
259 | &i2c3 { | 319 | &i2c3 { |
320 | pinctrl-names = "default"; | ||
321 | pinctrl-0 = <&i2c3_pins>; | ||
322 | |||
260 | clock-frequency = <400000>; | 323 | clock-frequency = <400000>; |
261 | 324 | ||
262 | /* | 325 | /* |
@@ -279,6 +342,9 @@ | |||
279 | }; | 342 | }; |
280 | 343 | ||
281 | &i2c4 { | 344 | &i2c4 { |
345 | pinctrl-names = "default"; | ||
346 | pinctrl-0 = <&i2c4_pins>; | ||
347 | |||
282 | clock-frequency = <400000>; | 348 | clock-frequency = <400000>; |
283 | 349 | ||
284 | /* | 350 | /* |
@@ -428,3 +494,9 @@ | |||
428 | &twl_usb_comparator { | 494 | &twl_usb_comparator { |
429 | usb-supply = <&vusb>; | 495 | usb-supply = <&vusb>; |
430 | }; | 496 | }; |
497 | |||
498 | &usb_otg_hs { | ||
499 | interface-type = <1>; | ||
500 | mode = <3>; | ||
501 | power = <50>; | ||
502 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts index 6601e6af6092..222a413c2c51 100644 --- a/arch/arm/boot/dts/omap4-var-som.dts +++ b/arch/arm/boot/dts/omap4-var-som.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap4.dtsi" | 10 | /include/ "omap443x.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "Variscite OMAP4 SOM"; | 13 | model = "Variscite OMAP4 SOM"; |
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index b7db1a2b6ca7..2a5642882c8a 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi | |||
@@ -94,6 +94,11 @@ | |||
94 | #size-cells = <1>; | 94 | #size-cells = <1>; |
95 | ranges; | 95 | ranges; |
96 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; | 96 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; |
97 | reg = <0x44000000 0x1000>, | ||
98 | <0x44800000 0x2000>, | ||
99 | <0x45000000 0x1000>; | ||
100 | interrupts = <0 9 0x4>, | ||
101 | <0 10 0x4>; | ||
97 | 102 | ||
98 | counter32k: counter@4a304000 { | 103 | counter32k: counter@4a304000 { |
99 | compatible = "ti,omap-counter32k"; | 104 | compatible = "ti,omap-counter32k"; |
@@ -118,15 +123,28 @@ | |||
118 | pinctrl-single,function-mask = <0x7fff>; | 123 | pinctrl-single,function-mask = <0x7fff>; |
119 | }; | 124 | }; |
120 | 125 | ||
126 | sdma: dma-controller@4a056000 { | ||
127 | compatible = "ti,omap4430-sdma"; | ||
128 | reg = <0x4a056000 0x1000>; | ||
129 | interrupts = <0 12 0x4>, | ||
130 | <0 13 0x4>, | ||
131 | <0 14 0x4>, | ||
132 | <0 15 0x4>; | ||
133 | #dma-cells = <1>; | ||
134 | #dma-channels = <32>; | ||
135 | #dma-requests = <127>; | ||
136 | }; | ||
137 | |||
121 | gpio1: gpio@4a310000 { | 138 | gpio1: gpio@4a310000 { |
122 | compatible = "ti,omap4-gpio"; | 139 | compatible = "ti,omap4-gpio"; |
123 | reg = <0x4a310000 0x200>; | 140 | reg = <0x4a310000 0x200>; |
124 | interrupts = <0 29 0x4>; | 141 | interrupts = <0 29 0x4>; |
125 | ti,hwmods = "gpio1"; | 142 | ti,hwmods = "gpio1"; |
143 | ti,gpio-always-on; | ||
126 | gpio-controller; | 144 | gpio-controller; |
127 | #gpio-cells = <2>; | 145 | #gpio-cells = <2>; |
128 | interrupt-controller; | 146 | interrupt-controller; |
129 | #interrupt-cells = <1>; | 147 | #interrupt-cells = <2>; |
130 | }; | 148 | }; |
131 | 149 | ||
132 | gpio2: gpio@48055000 { | 150 | gpio2: gpio@48055000 { |
@@ -137,7 +155,7 @@ | |||
137 | gpio-controller; | 155 | gpio-controller; |
138 | #gpio-cells = <2>; | 156 | #gpio-cells = <2>; |
139 | interrupt-controller; | 157 | interrupt-controller; |
140 | #interrupt-cells = <1>; | 158 | #interrupt-cells = <2>; |
141 | }; | 159 | }; |
142 | 160 | ||
143 | gpio3: gpio@48057000 { | 161 | gpio3: gpio@48057000 { |
@@ -148,7 +166,7 @@ | |||
148 | gpio-controller; | 166 | gpio-controller; |
149 | #gpio-cells = <2>; | 167 | #gpio-cells = <2>; |
150 | interrupt-controller; | 168 | interrupt-controller; |
151 | #interrupt-cells = <1>; | 169 | #interrupt-cells = <2>; |
152 | }; | 170 | }; |
153 | 171 | ||
154 | gpio4: gpio@48059000 { | 172 | gpio4: gpio@48059000 { |
@@ -159,7 +177,7 @@ | |||
159 | gpio-controller; | 177 | gpio-controller; |
160 | #gpio-cells = <2>; | 178 | #gpio-cells = <2>; |
161 | interrupt-controller; | 179 | interrupt-controller; |
162 | #interrupt-cells = <1>; | 180 | #interrupt-cells = <2>; |
163 | }; | 181 | }; |
164 | 182 | ||
165 | gpio5: gpio@4805b000 { | 183 | gpio5: gpio@4805b000 { |
@@ -170,7 +188,7 @@ | |||
170 | gpio-controller; | 188 | gpio-controller; |
171 | #gpio-cells = <2>; | 189 | #gpio-cells = <2>; |
172 | interrupt-controller; | 190 | interrupt-controller; |
173 | #interrupt-cells = <1>; | 191 | #interrupt-cells = <2>; |
174 | }; | 192 | }; |
175 | 193 | ||
176 | gpio6: gpio@4805d000 { | 194 | gpio6: gpio@4805d000 { |
@@ -181,7 +199,18 @@ | |||
181 | gpio-controller; | 199 | gpio-controller; |
182 | #gpio-cells = <2>; | 200 | #gpio-cells = <2>; |
183 | interrupt-controller; | 201 | interrupt-controller; |
184 | #interrupt-cells = <1>; | 202 | #interrupt-cells = <2>; |
203 | }; | ||
204 | |||
205 | gpmc: gpmc@50000000 { | ||
206 | compatible = "ti,omap4430-gpmc"; | ||
207 | reg = <0x50000000 0x1000>; | ||
208 | #address-cells = <2>; | ||
209 | #size-cells = <1>; | ||
210 | interrupts = <0 20 0x4>; | ||
211 | gpmc,num-cs = <8>; | ||
212 | gpmc,num-waitpins = <4>; | ||
213 | ti,hwmods = "gpmc"; | ||
185 | }; | 214 | }; |
186 | 215 | ||
187 | uart1: serial@4806a000 { | 216 | uart1: serial@4806a000 { |
@@ -260,6 +289,16 @@ | |||
260 | #size-cells = <0>; | 289 | #size-cells = <0>; |
261 | ti,hwmods = "mcspi1"; | 290 | ti,hwmods = "mcspi1"; |
262 | ti,spi-num-cs = <4>; | 291 | ti,spi-num-cs = <4>; |
292 | dmas = <&sdma 35>, | ||
293 | <&sdma 36>, | ||
294 | <&sdma 37>, | ||
295 | <&sdma 38>, | ||
296 | <&sdma 39>, | ||
297 | <&sdma 40>, | ||
298 | <&sdma 41>, | ||
299 | <&sdma 42>; | ||
300 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
301 | "tx2", "rx2", "tx3", "rx3"; | ||
263 | }; | 302 | }; |
264 | 303 | ||
265 | mcspi2: spi@4809a000 { | 304 | mcspi2: spi@4809a000 { |
@@ -270,6 +309,11 @@ | |||
270 | #size-cells = <0>; | 309 | #size-cells = <0>; |
271 | ti,hwmods = "mcspi2"; | 310 | ti,hwmods = "mcspi2"; |
272 | ti,spi-num-cs = <2>; | 311 | ti,spi-num-cs = <2>; |
312 | dmas = <&sdma 43>, | ||
313 | <&sdma 44>, | ||
314 | <&sdma 45>, | ||
315 | <&sdma 46>; | ||
316 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
273 | }; | 317 | }; |
274 | 318 | ||
275 | mcspi3: spi@480b8000 { | 319 | mcspi3: spi@480b8000 { |
@@ -280,6 +324,8 @@ | |||
280 | #size-cells = <0>; | 324 | #size-cells = <0>; |
281 | ti,hwmods = "mcspi3"; | 325 | ti,hwmods = "mcspi3"; |
282 | ti,spi-num-cs = <2>; | 326 | ti,spi-num-cs = <2>; |
327 | dmas = <&sdma 15>, <&sdma 16>; | ||
328 | dma-names = "tx0", "rx0"; | ||
283 | }; | 329 | }; |
284 | 330 | ||
285 | mcspi4: spi@480ba000 { | 331 | mcspi4: spi@480ba000 { |
@@ -290,6 +336,8 @@ | |||
290 | #size-cells = <0>; | 336 | #size-cells = <0>; |
291 | ti,hwmods = "mcspi4"; | 337 | ti,hwmods = "mcspi4"; |
292 | ti,spi-num-cs = <1>; | 338 | ti,spi-num-cs = <1>; |
339 | dmas = <&sdma 70>, <&sdma 71>; | ||
340 | dma-names = "tx0", "rx0"; | ||
293 | }; | 341 | }; |
294 | 342 | ||
295 | mmc1: mmc@4809c000 { | 343 | mmc1: mmc@4809c000 { |
@@ -299,6 +347,8 @@ | |||
299 | ti,hwmods = "mmc1"; | 347 | ti,hwmods = "mmc1"; |
300 | ti,dual-volt; | 348 | ti,dual-volt; |
301 | ti,needs-special-reset; | 349 | ti,needs-special-reset; |
350 | dmas = <&sdma 61>, <&sdma 62>; | ||
351 | dma-names = "tx", "rx"; | ||
302 | }; | 352 | }; |
303 | 353 | ||
304 | mmc2: mmc@480b4000 { | 354 | mmc2: mmc@480b4000 { |
@@ -307,6 +357,8 @@ | |||
307 | interrupts = <0 86 0x4>; | 357 | interrupts = <0 86 0x4>; |
308 | ti,hwmods = "mmc2"; | 358 | ti,hwmods = "mmc2"; |
309 | ti,needs-special-reset; | 359 | ti,needs-special-reset; |
360 | dmas = <&sdma 47>, <&sdma 48>; | ||
361 | dma-names = "tx", "rx"; | ||
310 | }; | 362 | }; |
311 | 363 | ||
312 | mmc3: mmc@480ad000 { | 364 | mmc3: mmc@480ad000 { |
@@ -315,6 +367,8 @@ | |||
315 | interrupts = <0 94 0x4>; | 367 | interrupts = <0 94 0x4>; |
316 | ti,hwmods = "mmc3"; | 368 | ti,hwmods = "mmc3"; |
317 | ti,needs-special-reset; | 369 | ti,needs-special-reset; |
370 | dmas = <&sdma 77>, <&sdma 78>; | ||
371 | dma-names = "tx", "rx"; | ||
318 | }; | 372 | }; |
319 | 373 | ||
320 | mmc4: mmc@480d1000 { | 374 | mmc4: mmc@480d1000 { |
@@ -323,6 +377,8 @@ | |||
323 | interrupts = <0 96 0x4>; | 377 | interrupts = <0 96 0x4>; |
324 | ti,hwmods = "mmc4"; | 378 | ti,hwmods = "mmc4"; |
325 | ti,needs-special-reset; | 379 | ti,needs-special-reset; |
380 | dmas = <&sdma 57>, <&sdma 58>; | ||
381 | dma-names = "tx", "rx"; | ||
326 | }; | 382 | }; |
327 | 383 | ||
328 | mmc5: mmc@480d5000 { | 384 | mmc5: mmc@480d5000 { |
@@ -331,6 +387,8 @@ | |||
331 | interrupts = <0 59 0x4>; | 387 | interrupts = <0 59 0x4>; |
332 | ti,hwmods = "mmc5"; | 388 | ti,hwmods = "mmc5"; |
333 | ti,needs-special-reset; | 389 | ti,needs-special-reset; |
390 | dmas = <&sdma 59>, <&sdma 60>; | ||
391 | dma-names = "tx", "rx"; | ||
334 | }; | 392 | }; |
335 | 393 | ||
336 | wdt2: wdt@4a314000 { | 394 | wdt2: wdt@4a314000 { |
@@ -347,6 +405,9 @@ | |||
347 | reg-names = "mpu", "dma"; | 405 | reg-names = "mpu", "dma"; |
348 | interrupts = <0 112 0x4>; | 406 | interrupts = <0 112 0x4>; |
349 | ti,hwmods = "mcpdm"; | 407 | ti,hwmods = "mcpdm"; |
408 | dmas = <&sdma 65>, | ||
409 | <&sdma 66>; | ||
410 | dma-names = "up_link", "dn_link"; | ||
350 | }; | 411 | }; |
351 | 412 | ||
352 | dmic: dmic@4012e000 { | 413 | dmic: dmic@4012e000 { |
@@ -356,6 +417,8 @@ | |||
356 | reg-names = "mpu", "dma"; | 417 | reg-names = "mpu", "dma"; |
357 | interrupts = <0 114 0x4>; | 418 | interrupts = <0 114 0x4>; |
358 | ti,hwmods = "dmic"; | 419 | ti,hwmods = "dmic"; |
420 | dmas = <&sdma 67>; | ||
421 | dma-names = "up_link"; | ||
359 | }; | 422 | }; |
360 | 423 | ||
361 | mcbsp1: mcbsp@40122000 { | 424 | mcbsp1: mcbsp@40122000 { |
@@ -367,6 +430,9 @@ | |||
367 | interrupt-names = "common"; | 430 | interrupt-names = "common"; |
368 | ti,buffer-size = <128>; | 431 | ti,buffer-size = <128>; |
369 | ti,hwmods = "mcbsp1"; | 432 | ti,hwmods = "mcbsp1"; |
433 | dmas = <&sdma 33>, | ||
434 | <&sdma 34>; | ||
435 | dma-names = "tx", "rx"; | ||
370 | }; | 436 | }; |
371 | 437 | ||
372 | mcbsp2: mcbsp@40124000 { | 438 | mcbsp2: mcbsp@40124000 { |
@@ -378,6 +444,9 @@ | |||
378 | interrupt-names = "common"; | 444 | interrupt-names = "common"; |
379 | ti,buffer-size = <128>; | 445 | ti,buffer-size = <128>; |
380 | ti,hwmods = "mcbsp2"; | 446 | ti,hwmods = "mcbsp2"; |
447 | dmas = <&sdma 17>, | ||
448 | <&sdma 18>; | ||
449 | dma-names = "tx", "rx"; | ||
381 | }; | 450 | }; |
382 | 451 | ||
383 | mcbsp3: mcbsp@40126000 { | 452 | mcbsp3: mcbsp@40126000 { |
@@ -389,6 +458,9 @@ | |||
389 | interrupt-names = "common"; | 458 | interrupt-names = "common"; |
390 | ti,buffer-size = <128>; | 459 | ti,buffer-size = <128>; |
391 | ti,hwmods = "mcbsp3"; | 460 | ti,hwmods = "mcbsp3"; |
461 | dmas = <&sdma 19>, | ||
462 | <&sdma 20>; | ||
463 | dma-names = "tx", "rx"; | ||
392 | }; | 464 | }; |
393 | 465 | ||
394 | mcbsp4: mcbsp@48096000 { | 466 | mcbsp4: mcbsp@48096000 { |
@@ -399,6 +471,9 @@ | |||
399 | interrupt-names = "common"; | 471 | interrupt-names = "common"; |
400 | ti,buffer-size = <128>; | 472 | ti,buffer-size = <128>; |
401 | ti,hwmods = "mcbsp4"; | 473 | ti,hwmods = "mcbsp4"; |
474 | dmas = <&sdma 31>, | ||
475 | <&sdma 32>; | ||
476 | dma-names = "tx", "rx"; | ||
402 | }; | 477 | }; |
403 | 478 | ||
404 | keypad: keypad@4a31c000 { | 479 | keypad: keypad@4a31c000 { |
@@ -438,10 +513,15 @@ | |||
438 | #size-cells = <1>; | 513 | #size-cells = <1>; |
439 | ranges; | 514 | ranges; |
440 | ti,hwmods = "ocp2scp_usb_phy"; | 515 | ti,hwmods = "ocp2scp_usb_phy"; |
516 | usb2_phy: usb2phy@4a0ad080 { | ||
517 | compatible = "ti,omap-usb2"; | ||
518 | reg = <0x4a0ad080 0x58>; | ||
519 | ctrl-module = <&omap_control_usb>; | ||
520 | }; | ||
441 | }; | 521 | }; |
442 | 522 | ||
443 | timer1: timer@4a318000 { | 523 | timer1: timer@4a318000 { |
444 | compatible = "ti,omap2-timer"; | 524 | compatible = "ti,omap3430-timer"; |
445 | reg = <0x4a318000 0x80>; | 525 | reg = <0x4a318000 0x80>; |
446 | interrupts = <0 37 0x4>; | 526 | interrupts = <0 37 0x4>; |
447 | ti,hwmods = "timer1"; | 527 | ti,hwmods = "timer1"; |
@@ -449,28 +529,28 @@ | |||
449 | }; | 529 | }; |
450 | 530 | ||
451 | timer2: timer@48032000 { | 531 | timer2: timer@48032000 { |
452 | compatible = "ti,omap2-timer"; | 532 | compatible = "ti,omap3430-timer"; |
453 | reg = <0x48032000 0x80>; | 533 | reg = <0x48032000 0x80>; |
454 | interrupts = <0 38 0x4>; | 534 | interrupts = <0 38 0x4>; |
455 | ti,hwmods = "timer2"; | 535 | ti,hwmods = "timer2"; |
456 | }; | 536 | }; |
457 | 537 | ||
458 | timer3: timer@48034000 { | 538 | timer3: timer@48034000 { |
459 | compatible = "ti,omap2-timer"; | 539 | compatible = "ti,omap4430-timer"; |
460 | reg = <0x48034000 0x80>; | 540 | reg = <0x48034000 0x80>; |
461 | interrupts = <0 39 0x4>; | 541 | interrupts = <0 39 0x4>; |
462 | ti,hwmods = "timer3"; | 542 | ti,hwmods = "timer3"; |
463 | }; | 543 | }; |
464 | 544 | ||
465 | timer4: timer@48036000 { | 545 | timer4: timer@48036000 { |
466 | compatible = "ti,omap2-timer"; | 546 | compatible = "ti,omap4430-timer"; |
467 | reg = <0x48036000 0x80>; | 547 | reg = <0x48036000 0x80>; |
468 | interrupts = <0 40 0x4>; | 548 | interrupts = <0 40 0x4>; |
469 | ti,hwmods = "timer4"; | 549 | ti,hwmods = "timer4"; |
470 | }; | 550 | }; |
471 | 551 | ||
472 | timer5: timer@40138000 { | 552 | timer5: timer@40138000 { |
473 | compatible = "ti,omap2-timer"; | 553 | compatible = "ti,omap4430-timer"; |
474 | reg = <0x40138000 0x80>, | 554 | reg = <0x40138000 0x80>, |
475 | <0x49038000 0x80>; | 555 | <0x49038000 0x80>; |
476 | interrupts = <0 41 0x4>; | 556 | interrupts = <0 41 0x4>; |
@@ -479,7 +559,7 @@ | |||
479 | }; | 559 | }; |
480 | 560 | ||
481 | timer6: timer@4013a000 { | 561 | timer6: timer@4013a000 { |
482 | compatible = "ti,omap2-timer"; | 562 | compatible = "ti,omap4430-timer"; |
483 | reg = <0x4013a000 0x80>, | 563 | reg = <0x4013a000 0x80>, |
484 | <0x4903a000 0x80>; | 564 | <0x4903a000 0x80>; |
485 | interrupts = <0 42 0x4>; | 565 | interrupts = <0 42 0x4>; |
@@ -488,7 +568,7 @@ | |||
488 | }; | 568 | }; |
489 | 569 | ||
490 | timer7: timer@4013c000 { | 570 | timer7: timer@4013c000 { |
491 | compatible = "ti,omap2-timer"; | 571 | compatible = "ti,omap4430-timer"; |
492 | reg = <0x4013c000 0x80>, | 572 | reg = <0x4013c000 0x80>, |
493 | <0x4903c000 0x80>; | 573 | <0x4903c000 0x80>; |
494 | interrupts = <0 43 0x4>; | 574 | interrupts = <0 43 0x4>; |
@@ -497,7 +577,7 @@ | |||
497 | }; | 577 | }; |
498 | 578 | ||
499 | timer8: timer@4013e000 { | 579 | timer8: timer@4013e000 { |
500 | compatible = "ti,omap2-timer"; | 580 | compatible = "ti,omap4430-timer"; |
501 | reg = <0x4013e000 0x80>, | 581 | reg = <0x4013e000 0x80>, |
502 | <0x4903e000 0x80>; | 582 | <0x4903e000 0x80>; |
503 | interrupts = <0 44 0x4>; | 583 | interrupts = <0 44 0x4>; |
@@ -507,7 +587,7 @@ | |||
507 | }; | 587 | }; |
508 | 588 | ||
509 | timer9: timer@4803e000 { | 589 | timer9: timer@4803e000 { |
510 | compatible = "ti,omap2-timer"; | 590 | compatible = "ti,omap4430-timer"; |
511 | reg = <0x4803e000 0x80>; | 591 | reg = <0x4803e000 0x80>; |
512 | interrupts = <0 45 0x4>; | 592 | interrupts = <0 45 0x4>; |
513 | ti,hwmods = "timer9"; | 593 | ti,hwmods = "timer9"; |
@@ -515,7 +595,7 @@ | |||
515 | }; | 595 | }; |
516 | 596 | ||
517 | timer10: timer@48086000 { | 597 | timer10: timer@48086000 { |
518 | compatible = "ti,omap2-timer"; | 598 | compatible = "ti,omap3430-timer"; |
519 | reg = <0x48086000 0x80>; | 599 | reg = <0x48086000 0x80>; |
520 | interrupts = <0 46 0x4>; | 600 | interrupts = <0 46 0x4>; |
521 | ti,hwmods = "timer10"; | 601 | ti,hwmods = "timer10"; |
@@ -523,7 +603,7 @@ | |||
523 | }; | 603 | }; |
524 | 604 | ||
525 | timer11: timer@48088000 { | 605 | timer11: timer@48088000 { |
526 | compatible = "ti,omap2-timer"; | 606 | compatible = "ti,omap4430-timer"; |
527 | reg = <0x48088000 0x80>; | 607 | reg = <0x48088000 0x80>; |
528 | interrupts = <0 47 0x4>; | 608 | interrupts = <0 47 0x4>; |
529 | ti,hwmods = "timer11"; | 609 | ti,hwmods = "timer11"; |
@@ -559,5 +639,26 @@ | |||
559 | interrupts = <0 77 0x4>; | 639 | interrupts = <0 77 0x4>; |
560 | }; | 640 | }; |
561 | }; | 641 | }; |
642 | |||
643 | omap_control_usb: omap-control-usb@4a002300 { | ||
644 | compatible = "ti,omap-control-usb"; | ||
645 | reg = <0x4a002300 0x4>, | ||
646 | <0x4a00233c 0x4>; | ||
647 | reg-names = "control_dev_conf", "otghs_control"; | ||
648 | ti,type = <1>; | ||
649 | }; | ||
650 | |||
651 | usb_otg_hs: usb_otg_hs@4a0ab000 { | ||
652 | compatible = "ti,omap4-musb"; | ||
653 | reg = <0x4a0ab000 0x7ff>; | ||
654 | interrupts = <0 92 0x4>, <0 93 0x4>; | ||
655 | interrupt-names = "mc", "dma"; | ||
656 | ti,hwmods = "usb_otg_hs"; | ||
657 | usb-phy = <&usb2_phy>; | ||
658 | multipoint = <1>; | ||
659 | num-eps = <16>; | ||
660 | ram-bits = <12>; | ||
661 | ti,has-mailbox; | ||
662 | }; | ||
562 | }; | 663 | }; |
563 | }; | 664 | }; |
diff --git a/arch/arm/boot/dts/omap443x.dtsi b/arch/arm/boot/dts/omap443x.dtsi new file mode 100644 index 000000000000..cccf39af4925 --- /dev/null +++ b/arch/arm/boot/dts/omap443x.dtsi | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | * Device Tree Source for OMAP443x SoC | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /include/ "omap4.dtsi" | ||
12 | |||
13 | / { | ||
14 | cpus { | ||
15 | cpu@0 { | ||
16 | /* OMAP443x variants OPP50-OPPNT */ | ||
17 | operating-points = < | ||
18 | /* kHz uV */ | ||
19 | 300000 1025000 | ||
20 | 600000 1200000 | ||
21 | 800000 1313000 | ||
22 | 1008000 1375000 | ||
23 | >; | ||
24 | clock-latency = <300000>; /* From legacy driver */ | ||
25 | }; | ||
26 | }; | ||
27 | }; | ||
diff --git a/arch/arm/boot/dts/omap4460.dtsi b/arch/arm/boot/dts/omap4460.dtsi new file mode 100644 index 000000000000..7c2c23cc17ef --- /dev/null +++ b/arch/arm/boot/dts/omap4460.dtsi | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * Device Tree Source for OMAP4460 SoC | ||
3 | * | ||
4 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | /include/ "omap4.dtsi" | ||
11 | |||
12 | / { | ||
13 | cpus { | ||
14 | /* OMAP446x 'standard device' variants OPP50 to OPPTurbo */ | ||
15 | cpu@0 { | ||
16 | operating-points = < | ||
17 | /* kHz uV */ | ||
18 | 350000 975000 | ||
19 | 700000 1075000 | ||
20 | 920000 1200000 | ||
21 | >; | ||
22 | clock-latency = <300000>; /* From legacy driver */ | ||
23 | }; | ||
24 | }; | ||
25 | |||
26 | pmu { | ||
27 | compatible = "arm,cortex-a9-pmu"; | ||
28 | interrupts = <0 54 0x4>, | ||
29 | <0 55 0x4>; | ||
30 | ti,hwmods = "debugss"; | ||
31 | }; | ||
32 | }; | ||
diff --git a/arch/arm/boot/dts/omap5-evm.dts b/arch/arm/boot/dts/omap5-evm.dts index 8722c15bbba2..982acd19477d 100644 --- a/arch/arm/boot/dts/omap5-evm.dts +++ b/arch/arm/boot/dts/omap5-evm.dts | |||
@@ -16,7 +16,7 @@ | |||
16 | 16 | ||
17 | memory { | 17 | memory { |
18 | device_type = "memory"; | 18 | device_type = "memory"; |
19 | reg = <0x80000000 0x80000000>; /* 2 GB */ | 19 | reg = <0x80000000 0x7F000000>; /* 2032 MB */ |
20 | }; | 20 | }; |
21 | 21 | ||
22 | vmmcsd_fixed: fixedregulator-mmcsd { | 22 | vmmcsd_fixed: fixedregulator-mmcsd { |
@@ -80,6 +80,68 @@ | |||
80 | 0x15a 0x100 /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */ | 80 | 0x15a 0x100 /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */ |
81 | >; | 81 | >; |
82 | }; | 82 | }; |
83 | |||
84 | i2c1_pins: pinmux_i2c1_pins { | ||
85 | pinctrl-single,pins = < | ||
86 | 0x1b2 0x118 /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */ | ||
87 | 0x1b4 0x118 /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */ | ||
88 | >; | ||
89 | }; | ||
90 | |||
91 | i2c2_pins: pinmux_i2c2_pins { | ||
92 | pinctrl-single,pins = < | ||
93 | 0x178 0x100 /* i2c2_scl INPUTENABLE | MODE0 */ | ||
94 | 0x17a 0x100 /* i2c2_sda INPUTENABLE | MODE0 */ | ||
95 | >; | ||
96 | }; | ||
97 | |||
98 | i2c3_pins: pinmux_i2c3_pins { | ||
99 | pinctrl-single,pins = < | ||
100 | 0x13a 0x100 /* i2c3_scl INPUTENABLE | MODE0 */ | ||
101 | 0x13c 0x100 /* i2c3_sda INPUTENABLE | MODE0 */ | ||
102 | >; | ||
103 | }; | ||
104 | |||
105 | i2c4_pins: pinmux_i2c4_pins { | ||
106 | pinctrl-single,pins = < | ||
107 | 0xb8 0x100 /* i2c4_scl INPUTENABLE | MODE0 */ | ||
108 | 0xba 0x100 /* i2c4_sda INPUTENABLE | MODE0 */ | ||
109 | >; | ||
110 | }; | ||
111 | |||
112 | i2c5_pins: pinmux_i2c5_pins { | ||
113 | pinctrl-single,pins = < | ||
114 | 0x184 0x100 /* i2c5_scl INPUTENABLE | MODE0 */ | ||
115 | 0x186 0x100 /* i2c5_sda INPUTENABLE | MODE0 */ | ||
116 | >; | ||
117 | }; | ||
118 | |||
119 | mcspi2_pins: pinmux_mcspi2_pins { | ||
120 | pinctrl-single,pins = < | ||
121 | 0xbc 0x100 /* MCSPI2_CLK INPUTENABLE | MODE0 */ | ||
122 | 0xbe 0x100 /* MCSPI2_SIMO INPUTENABLE | MODE0 */ | ||
123 | 0xc0 0x118 /* MCSPI2_SOMI PULLUP | INPUTENABLE | MODE0*/ | ||
124 | 0xc2 0x0 /* MCSPI2_CS MODE0*/ | ||
125 | >; | ||
126 | }; | ||
127 | |||
128 | mcspi3_pins: pinmux_mcspi3_pins { | ||
129 | pinctrl-single,pins = < | ||
130 | 0x78 0x101 /* MCSPI2_SOMI INPUTENABLE | MODE1 */ | ||
131 | 0x7a 0x101 /* MCSPI2_CS INPUTENABLE | MODE1 */ | ||
132 | 0x7c 0x101 /* MCSPI2_SIMO INPUTENABLE | MODE1 */ | ||
133 | 0x7e 0x101 /* MCSPI2_CLK INPUTENABLE | MODE1 */ | ||
134 | >; | ||
135 | }; | ||
136 | |||
137 | mcspi4_pins: pinmux_mcspi4_pins { | ||
138 | pinctrl-single,pins = < | ||
139 | 0x164 0x101 /* MCSPI2_CLK INPUTENABLE | MODE1 */ | ||
140 | 0x168 0x101 /* MCSPI2_SIMO INPUTENABLE | MODE1 */ | ||
141 | 0x16a 0x101 /* MCSPI2_SOMI INPUTENABLE | MODE1 */ | ||
142 | 0x16c 0x101 /* MCSPI2_CS INPUTENABLE | MODE1 */ | ||
143 | >; | ||
144 | }; | ||
83 | }; | 145 | }; |
84 | 146 | ||
85 | &mmc1 { | 147 | &mmc1 { |
@@ -106,7 +168,17 @@ | |||
106 | status = "disabled"; | 168 | status = "disabled"; |
107 | }; | 169 | }; |
108 | 170 | ||
171 | &i2c1 { | ||
172 | pinctrl-names = "default"; | ||
173 | pinctrl-0 = <&i2c1_pins>; | ||
174 | |||
175 | clock-frequency = <400000>; | ||
176 | }; | ||
177 | |||
109 | &i2c2 { | 178 | &i2c2 { |
179 | pinctrl-names = "default"; | ||
180 | pinctrl-0 = <&i2c2_pins>; | ||
181 | |||
110 | clock-frequency = <400000>; | 182 | clock-frequency = <400000>; |
111 | 183 | ||
112 | /* Pressure Sensor */ | 184 | /* Pressure Sensor */ |
@@ -116,7 +188,17 @@ | |||
116 | }; | 188 | }; |
117 | }; | 189 | }; |
118 | 190 | ||
191 | &i2c3 { | ||
192 | pinctrl-names = "default"; | ||
193 | pinctrl-0 = <&i2c3_pins>; | ||
194 | |||
195 | clock-frequency = <400000>; | ||
196 | }; | ||
197 | |||
119 | &i2c4 { | 198 | &i2c4 { |
199 | pinctrl-names = "default"; | ||
200 | pinctrl-0 = <&i2c4_pins>; | ||
201 | |||
120 | clock-frequency = <400000>; | 202 | clock-frequency = <400000>; |
121 | 203 | ||
122 | /* Temperature Sensor */ | 204 | /* Temperature Sensor */ |
@@ -126,6 +208,13 @@ | |||
126 | }; | 208 | }; |
127 | }; | 209 | }; |
128 | 210 | ||
211 | &i2c5 { | ||
212 | pinctrl-names = "default"; | ||
213 | pinctrl-0 = <&i2c5_pins>; | ||
214 | |||
215 | clock-frequency = <400000>; | ||
216 | }; | ||
217 | |||
129 | &keypad { | 218 | &keypad { |
130 | keypad,num-rows = <8>; | 219 | keypad,num-rows = <8>; |
131 | keypad,num-columns = <8>; | 220 | keypad,num-columns = <8>; |
@@ -151,3 +240,22 @@ | |||
151 | cs1-used; | 240 | cs1-used; |
152 | device-handle = <&samsung_K3PE0E000B>; | 241 | device-handle = <&samsung_K3PE0E000B>; |
153 | }; | 242 | }; |
243 | |||
244 | &mcspi1 { | ||
245 | |||
246 | }; | ||
247 | |||
248 | &mcspi2 { | ||
249 | pinctrl-names = "default"; | ||
250 | pinctrl-0 = <&mcspi2_pins>; | ||
251 | }; | ||
252 | |||
253 | &mcspi3 { | ||
254 | pinctrl-names = "default"; | ||
255 | pinctrl-0 = <&mcspi3_pins>; | ||
256 | }; | ||
257 | |||
258 | &mcspi4 { | ||
259 | pinctrl-names = "default"; | ||
260 | pinctrl-0 = <&mcspi4_pins>; | ||
261 | }; | ||
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 790bb2a4b343..3dd7ff825828 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi | |||
@@ -18,6 +18,9 @@ | |||
18 | /include/ "skeleton.dtsi" | 18 | /include/ "skeleton.dtsi" |
19 | 19 | ||
20 | / { | 20 | / { |
21 | #address-cells = <1>; | ||
22 | #size-cells = <1>; | ||
23 | |||
21 | compatible = "ti,omap5"; | 24 | compatible = "ti,omap5"; |
22 | interrupt-parent = <&gic>; | 25 | interrupt-parent = <&gic>; |
23 | 26 | ||
@@ -33,24 +36,32 @@ | |||
33 | cpus { | 36 | cpus { |
34 | cpu@0 { | 37 | cpu@0 { |
35 | compatible = "arm,cortex-a15"; | 38 | compatible = "arm,cortex-a15"; |
36 | timer { | ||
37 | compatible = "arm,armv7-timer"; | ||
38 | /* 14th PPI IRQ, active low level-sensitive */ | ||
39 | interrupts = <1 14 0x308>; | ||
40 | clock-frequency = <6144000>; | ||
41 | }; | ||
42 | }; | 39 | }; |
43 | cpu@1 { | 40 | cpu@1 { |
44 | compatible = "arm,cortex-a15"; | 41 | compatible = "arm,cortex-a15"; |
45 | timer { | ||
46 | compatible = "arm,armv7-timer"; | ||
47 | /* 14th PPI IRQ, active low level-sensitive */ | ||
48 | interrupts = <1 14 0x308>; | ||
49 | clock-frequency = <6144000>; | ||
50 | }; | ||
51 | }; | 42 | }; |
52 | }; | 43 | }; |
53 | 44 | ||
45 | timer { | ||
46 | compatible = "arm,armv7-timer"; | ||
47 | /* PPI secure/nonsecure IRQ, active low level-sensitive */ | ||
48 | interrupts = <1 13 0x308>, | ||
49 | <1 14 0x308>, | ||
50 | <1 11 0x308>, | ||
51 | <1 10 0x308>; | ||
52 | clock-frequency = <6144000>; | ||
53 | }; | ||
54 | |||
55 | gic: interrupt-controller@48211000 { | ||
56 | compatible = "arm,cortex-a15-gic"; | ||
57 | interrupt-controller; | ||
58 | #interrupt-cells = <3>; | ||
59 | reg = <0x48211000 0x1000>, | ||
60 | <0x48212000 0x1000>, | ||
61 | <0x48214000 0x2000>, | ||
62 | <0x48216000 0x2000>; | ||
63 | }; | ||
64 | |||
54 | /* | 65 | /* |
55 | * The soc node represents the soc top level view. It is uses for IPs | 66 | * The soc node represents the soc top level view. It is uses for IPs |
56 | * that are not memory mapped in the MPU view or for the MPU itself. | 67 | * that are not memory mapped in the MPU view or for the MPU itself. |
@@ -76,6 +87,11 @@ | |||
76 | #size-cells = <1>; | 87 | #size-cells = <1>; |
77 | ranges; | 88 | ranges; |
78 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; | 89 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; |
90 | reg = <0x44000000 0x2000>, | ||
91 | <0x44800000 0x3000>, | ||
92 | <0x45000000 0x4000>; | ||
93 | interrupts = <0 9 0x4>, | ||
94 | <0 10 0x4>; | ||
79 | 95 | ||
80 | counter32k: counter@4ae04000 { | 96 | counter32k: counter@4ae04000 { |
81 | compatible = "ti,omap-counter32k"; | 97 | compatible = "ti,omap-counter32k"; |
@@ -100,12 +116,16 @@ | |||
100 | pinctrl-single,function-mask = <0x7fff>; | 116 | pinctrl-single,function-mask = <0x7fff>; |
101 | }; | 117 | }; |
102 | 118 | ||
103 | gic: interrupt-controller@48211000 { | 119 | sdma: dma-controller@4a056000 { |
104 | compatible = "arm,cortex-a15-gic"; | 120 | compatible = "ti,omap4430-sdma"; |
105 | interrupt-controller; | 121 | reg = <0x4a056000 0x1000>; |
106 | #interrupt-cells = <3>; | 122 | interrupts = <0 12 0x4>, |
107 | reg = <0x48211000 0x1000>, | 123 | <0 13 0x4>, |
108 | <0x48212000 0x1000>; | 124 | <0 14 0x4>, |
125 | <0 15 0x4>; | ||
126 | #dma-cells = <1>; | ||
127 | #dma-channels = <32>; | ||
128 | #dma-requests = <127>; | ||
109 | }; | 129 | }; |
110 | 130 | ||
111 | gpio1: gpio@4ae10000 { | 131 | gpio1: gpio@4ae10000 { |
@@ -113,10 +133,11 @@ | |||
113 | reg = <0x4ae10000 0x200>; | 133 | reg = <0x4ae10000 0x200>; |
114 | interrupts = <0 29 0x4>; | 134 | interrupts = <0 29 0x4>; |
115 | ti,hwmods = "gpio1"; | 135 | ti,hwmods = "gpio1"; |
136 | ti,gpio-always-on; | ||
116 | gpio-controller; | 137 | gpio-controller; |
117 | #gpio-cells = <2>; | 138 | #gpio-cells = <2>; |
118 | interrupt-controller; | 139 | interrupt-controller; |
119 | #interrupt-cells = <1>; | 140 | #interrupt-cells = <2>; |
120 | }; | 141 | }; |
121 | 142 | ||
122 | gpio2: gpio@48055000 { | 143 | gpio2: gpio@48055000 { |
@@ -127,7 +148,7 @@ | |||
127 | gpio-controller; | 148 | gpio-controller; |
128 | #gpio-cells = <2>; | 149 | #gpio-cells = <2>; |
129 | interrupt-controller; | 150 | interrupt-controller; |
130 | #interrupt-cells = <1>; | 151 | #interrupt-cells = <2>; |
131 | }; | 152 | }; |
132 | 153 | ||
133 | gpio3: gpio@48057000 { | 154 | gpio3: gpio@48057000 { |
@@ -138,7 +159,7 @@ | |||
138 | gpio-controller; | 159 | gpio-controller; |
139 | #gpio-cells = <2>; | 160 | #gpio-cells = <2>; |
140 | interrupt-controller; | 161 | interrupt-controller; |
141 | #interrupt-cells = <1>; | 162 | #interrupt-cells = <2>; |
142 | }; | 163 | }; |
143 | 164 | ||
144 | gpio4: gpio@48059000 { | 165 | gpio4: gpio@48059000 { |
@@ -149,7 +170,7 @@ | |||
149 | gpio-controller; | 170 | gpio-controller; |
150 | #gpio-cells = <2>; | 171 | #gpio-cells = <2>; |
151 | interrupt-controller; | 172 | interrupt-controller; |
152 | #interrupt-cells = <1>; | 173 | #interrupt-cells = <2>; |
153 | }; | 174 | }; |
154 | 175 | ||
155 | gpio5: gpio@4805b000 { | 176 | gpio5: gpio@4805b000 { |
@@ -160,7 +181,7 @@ | |||
160 | gpio-controller; | 181 | gpio-controller; |
161 | #gpio-cells = <2>; | 182 | #gpio-cells = <2>; |
162 | interrupt-controller; | 183 | interrupt-controller; |
163 | #interrupt-cells = <1>; | 184 | #interrupt-cells = <2>; |
164 | }; | 185 | }; |
165 | 186 | ||
166 | gpio6: gpio@4805d000 { | 187 | gpio6: gpio@4805d000 { |
@@ -171,7 +192,7 @@ | |||
171 | gpio-controller; | 192 | gpio-controller; |
172 | #gpio-cells = <2>; | 193 | #gpio-cells = <2>; |
173 | interrupt-controller; | 194 | interrupt-controller; |
174 | #interrupt-cells = <1>; | 195 | #interrupt-cells = <2>; |
175 | }; | 196 | }; |
176 | 197 | ||
177 | gpio7: gpio@48051000 { | 198 | gpio7: gpio@48051000 { |
@@ -182,7 +203,7 @@ | |||
182 | gpio-controller; | 203 | gpio-controller; |
183 | #gpio-cells = <2>; | 204 | #gpio-cells = <2>; |
184 | interrupt-controller; | 205 | interrupt-controller; |
185 | #interrupt-cells = <1>; | 206 | #interrupt-cells = <2>; |
186 | }; | 207 | }; |
187 | 208 | ||
188 | gpio8: gpio@48053000 { | 209 | gpio8: gpio@48053000 { |
@@ -193,7 +214,18 @@ | |||
193 | gpio-controller; | 214 | gpio-controller; |
194 | #gpio-cells = <2>; | 215 | #gpio-cells = <2>; |
195 | interrupt-controller; | 216 | interrupt-controller; |
196 | #interrupt-cells = <1>; | 217 | #interrupt-cells = <2>; |
218 | }; | ||
219 | |||
220 | gpmc: gpmc@50000000 { | ||
221 | compatible = "ti,omap4430-gpmc"; | ||
222 | reg = <0x50000000 0x1000>; | ||
223 | #address-cells = <2>; | ||
224 | #size-cells = <1>; | ||
225 | interrupts = <0 20 0x4>; | ||
226 | gpmc,num-cs = <8>; | ||
227 | gpmc,num-waitpins = <4>; | ||
228 | ti,hwmods = "gpmc"; | ||
197 | }; | 229 | }; |
198 | 230 | ||
199 | i2c1: i2c@48070000 { | 231 | i2c1: i2c@48070000 { |
@@ -241,6 +273,65 @@ | |||
241 | ti,hwmods = "i2c5"; | 273 | ti,hwmods = "i2c5"; |
242 | }; | 274 | }; |
243 | 275 | ||
276 | mcspi1: spi@48098000 { | ||
277 | compatible = "ti,omap4-mcspi"; | ||
278 | reg = <0x48098000 0x200>; | ||
279 | interrupts = <0 65 0x4>; | ||
280 | #address-cells = <1>; | ||
281 | #size-cells = <0>; | ||
282 | ti,hwmods = "mcspi1"; | ||
283 | ti,spi-num-cs = <4>; | ||
284 | dmas = <&sdma 35>, | ||
285 | <&sdma 36>, | ||
286 | <&sdma 37>, | ||
287 | <&sdma 38>, | ||
288 | <&sdma 39>, | ||
289 | <&sdma 40>, | ||
290 | <&sdma 41>, | ||
291 | <&sdma 42>; | ||
292 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
293 | "tx2", "rx2", "tx3", "rx3"; | ||
294 | }; | ||
295 | |||
296 | mcspi2: spi@4809a000 { | ||
297 | compatible = "ti,omap4-mcspi"; | ||
298 | reg = <0x4809a000 0x200>; | ||
299 | interrupts = <0 66 0x4>; | ||
300 | #address-cells = <1>; | ||
301 | #size-cells = <0>; | ||
302 | ti,hwmods = "mcspi2"; | ||
303 | ti,spi-num-cs = <2>; | ||
304 | dmas = <&sdma 43>, | ||
305 | <&sdma 44>, | ||
306 | <&sdma 45>, | ||
307 | <&sdma 46>; | ||
308 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
309 | }; | ||
310 | |||
311 | mcspi3: spi@480b8000 { | ||
312 | compatible = "ti,omap4-mcspi"; | ||
313 | reg = <0x480b8000 0x200>; | ||
314 | interrupts = <0 91 0x4>; | ||
315 | #address-cells = <1>; | ||
316 | #size-cells = <0>; | ||
317 | ti,hwmods = "mcspi3"; | ||
318 | ti,spi-num-cs = <2>; | ||
319 | dmas = <&sdma 15>, <&sdma 16>; | ||
320 | dma-names = "tx0", "rx0"; | ||
321 | }; | ||
322 | |||
323 | mcspi4: spi@480ba000 { | ||
324 | compatible = "ti,omap4-mcspi"; | ||
325 | reg = <0x480ba000 0x200>; | ||
326 | interrupts = <0 48 0x4>; | ||
327 | #address-cells = <1>; | ||
328 | #size-cells = <0>; | ||
329 | ti,hwmods = "mcspi4"; | ||
330 | ti,spi-num-cs = <1>; | ||
331 | dmas = <&sdma 70>, <&sdma 71>; | ||
332 | dma-names = "tx0", "rx0"; | ||
333 | }; | ||
334 | |||
244 | uart1: serial@4806a000 { | 335 | uart1: serial@4806a000 { |
245 | compatible = "ti,omap4-uart"; | 336 | compatible = "ti,omap4-uart"; |
246 | reg = <0x4806a000 0x100>; | 337 | reg = <0x4806a000 0x100>; |
@@ -296,6 +387,8 @@ | |||
296 | ti,hwmods = "mmc1"; | 387 | ti,hwmods = "mmc1"; |
297 | ti,dual-volt; | 388 | ti,dual-volt; |
298 | ti,needs-special-reset; | 389 | ti,needs-special-reset; |
390 | dmas = <&sdma 61>, <&sdma 62>; | ||
391 | dma-names = "tx", "rx"; | ||
299 | }; | 392 | }; |
300 | 393 | ||
301 | mmc2: mmc@480b4000 { | 394 | mmc2: mmc@480b4000 { |
@@ -304,6 +397,8 @@ | |||
304 | interrupts = <0 86 0x4>; | 397 | interrupts = <0 86 0x4>; |
305 | ti,hwmods = "mmc2"; | 398 | ti,hwmods = "mmc2"; |
306 | ti,needs-special-reset; | 399 | ti,needs-special-reset; |
400 | dmas = <&sdma 47>, <&sdma 48>; | ||
401 | dma-names = "tx", "rx"; | ||
307 | }; | 402 | }; |
308 | 403 | ||
309 | mmc3: mmc@480ad000 { | 404 | mmc3: mmc@480ad000 { |
@@ -312,6 +407,8 @@ | |||
312 | interrupts = <0 94 0x4>; | 407 | interrupts = <0 94 0x4>; |
313 | ti,hwmods = "mmc3"; | 408 | ti,hwmods = "mmc3"; |
314 | ti,needs-special-reset; | 409 | ti,needs-special-reset; |
410 | dmas = <&sdma 77>, <&sdma 78>; | ||
411 | dma-names = "tx", "rx"; | ||
315 | }; | 412 | }; |
316 | 413 | ||
317 | mmc4: mmc@480d1000 { | 414 | mmc4: mmc@480d1000 { |
@@ -320,6 +417,8 @@ | |||
320 | interrupts = <0 96 0x4>; | 417 | interrupts = <0 96 0x4>; |
321 | ti,hwmods = "mmc4"; | 418 | ti,hwmods = "mmc4"; |
322 | ti,needs-special-reset; | 419 | ti,needs-special-reset; |
420 | dmas = <&sdma 57>, <&sdma 58>; | ||
421 | dma-names = "tx", "rx"; | ||
323 | }; | 422 | }; |
324 | 423 | ||
325 | mmc5: mmc@480d5000 { | 424 | mmc5: mmc@480d5000 { |
@@ -328,10 +427,13 @@ | |||
328 | interrupts = <0 59 0x4>; | 427 | interrupts = <0 59 0x4>; |
329 | ti,hwmods = "mmc5"; | 428 | ti,hwmods = "mmc5"; |
330 | ti,needs-special-reset; | 429 | ti,needs-special-reset; |
430 | dmas = <&sdma 59>, <&sdma 60>; | ||
431 | dma-names = "tx", "rx"; | ||
331 | }; | 432 | }; |
332 | 433 | ||
333 | keypad: keypad@4ae1c000 { | 434 | keypad: keypad@4ae1c000 { |
334 | compatible = "ti,omap4-keypad"; | 435 | compatible = "ti,omap4-keypad"; |
436 | reg = <0x4ae1c000 0x400>; | ||
335 | ti,hwmods = "kbd"; | 437 | ti,hwmods = "kbd"; |
336 | }; | 438 | }; |
337 | 439 | ||
@@ -342,6 +444,9 @@ | |||
342 | reg-names = "mpu", "dma"; | 444 | reg-names = "mpu", "dma"; |
343 | interrupts = <0 112 0x4>; | 445 | interrupts = <0 112 0x4>; |
344 | ti,hwmods = "mcpdm"; | 446 | ti,hwmods = "mcpdm"; |
447 | dmas = <&sdma 65>, | ||
448 | <&sdma 66>; | ||
449 | dma-names = "up_link", "dn_link"; | ||
345 | }; | 450 | }; |
346 | 451 | ||
347 | dmic: dmic@4012e000 { | 452 | dmic: dmic@4012e000 { |
@@ -351,6 +456,8 @@ | |||
351 | reg-names = "mpu", "dma"; | 456 | reg-names = "mpu", "dma"; |
352 | interrupts = <0 114 0x4>; | 457 | interrupts = <0 114 0x4>; |
353 | ti,hwmods = "dmic"; | 458 | ti,hwmods = "dmic"; |
459 | dmas = <&sdma 67>; | ||
460 | dma-names = "up_link"; | ||
354 | }; | 461 | }; |
355 | 462 | ||
356 | mcbsp1: mcbsp@40122000 { | 463 | mcbsp1: mcbsp@40122000 { |
@@ -362,6 +469,9 @@ | |||
362 | interrupt-names = "common"; | 469 | interrupt-names = "common"; |
363 | ti,buffer-size = <128>; | 470 | ti,buffer-size = <128>; |
364 | ti,hwmods = "mcbsp1"; | 471 | ti,hwmods = "mcbsp1"; |
472 | dmas = <&sdma 33>, | ||
473 | <&sdma 34>; | ||
474 | dma-names = "tx", "rx"; | ||
365 | }; | 475 | }; |
366 | 476 | ||
367 | mcbsp2: mcbsp@40124000 { | 477 | mcbsp2: mcbsp@40124000 { |
@@ -373,6 +483,9 @@ | |||
373 | interrupt-names = "common"; | 483 | interrupt-names = "common"; |
374 | ti,buffer-size = <128>; | 484 | ti,buffer-size = <128>; |
375 | ti,hwmods = "mcbsp2"; | 485 | ti,hwmods = "mcbsp2"; |
486 | dmas = <&sdma 17>, | ||
487 | <&sdma 18>; | ||
488 | dma-names = "tx", "rx"; | ||
376 | }; | 489 | }; |
377 | 490 | ||
378 | mcbsp3: mcbsp@40126000 { | 491 | mcbsp3: mcbsp@40126000 { |
@@ -384,10 +497,13 @@ | |||
384 | interrupt-names = "common"; | 497 | interrupt-names = "common"; |
385 | ti,buffer-size = <128>; | 498 | ti,buffer-size = <128>; |
386 | ti,hwmods = "mcbsp3"; | 499 | ti,hwmods = "mcbsp3"; |
500 | dmas = <&sdma 19>, | ||
501 | <&sdma 20>; | ||
502 | dma-names = "tx", "rx"; | ||
387 | }; | 503 | }; |
388 | 504 | ||
389 | timer1: timer@4ae18000 { | 505 | timer1: timer@4ae18000 { |
390 | compatible = "ti,omap2-timer"; | 506 | compatible = "ti,omap5430-timer"; |
391 | reg = <0x4ae18000 0x80>; | 507 | reg = <0x4ae18000 0x80>; |
392 | interrupts = <0 37 0x4>; | 508 | interrupts = <0 37 0x4>; |
393 | ti,hwmods = "timer1"; | 509 | ti,hwmods = "timer1"; |
@@ -395,28 +511,28 @@ | |||
395 | }; | 511 | }; |
396 | 512 | ||
397 | timer2: timer@48032000 { | 513 | timer2: timer@48032000 { |
398 | compatible = "ti,omap2-timer"; | 514 | compatible = "ti,omap5430-timer"; |
399 | reg = <0x48032000 0x80>; | 515 | reg = <0x48032000 0x80>; |
400 | interrupts = <0 38 0x4>; | 516 | interrupts = <0 38 0x4>; |
401 | ti,hwmods = "timer2"; | 517 | ti,hwmods = "timer2"; |
402 | }; | 518 | }; |
403 | 519 | ||
404 | timer3: timer@48034000 { | 520 | timer3: timer@48034000 { |
405 | compatible = "ti,omap2-timer"; | 521 | compatible = "ti,omap5430-timer"; |
406 | reg = <0x48034000 0x80>; | 522 | reg = <0x48034000 0x80>; |
407 | interrupts = <0 39 0x4>; | 523 | interrupts = <0 39 0x4>; |
408 | ti,hwmods = "timer3"; | 524 | ti,hwmods = "timer3"; |
409 | }; | 525 | }; |
410 | 526 | ||
411 | timer4: timer@48036000 { | 527 | timer4: timer@48036000 { |
412 | compatible = "ti,omap2-timer"; | 528 | compatible = "ti,omap5430-timer"; |
413 | reg = <0x48036000 0x80>; | 529 | reg = <0x48036000 0x80>; |
414 | interrupts = <0 40 0x4>; | 530 | interrupts = <0 40 0x4>; |
415 | ti,hwmods = "timer4"; | 531 | ti,hwmods = "timer4"; |
416 | }; | 532 | }; |
417 | 533 | ||
418 | timer5: timer@40138000 { | 534 | timer5: timer@40138000 { |
419 | compatible = "ti,omap2-timer"; | 535 | compatible = "ti,omap5430-timer"; |
420 | reg = <0x40138000 0x80>, | 536 | reg = <0x40138000 0x80>, |
421 | <0x49038000 0x80>; | 537 | <0x49038000 0x80>; |
422 | interrupts = <0 41 0x4>; | 538 | interrupts = <0 41 0x4>; |
@@ -425,7 +541,7 @@ | |||
425 | }; | 541 | }; |
426 | 542 | ||
427 | timer6: timer@4013a000 { | 543 | timer6: timer@4013a000 { |
428 | compatible = "ti,omap2-timer"; | 544 | compatible = "ti,omap5430-timer"; |
429 | reg = <0x4013a000 0x80>, | 545 | reg = <0x4013a000 0x80>, |
430 | <0x4903a000 0x80>; | 546 | <0x4903a000 0x80>; |
431 | interrupts = <0 42 0x4>; | 547 | interrupts = <0 42 0x4>; |
@@ -435,7 +551,7 @@ | |||
435 | }; | 551 | }; |
436 | 552 | ||
437 | timer7: timer@4013c000 { | 553 | timer7: timer@4013c000 { |
438 | compatible = "ti,omap2-timer"; | 554 | compatible = "ti,omap5430-timer"; |
439 | reg = <0x4013c000 0x80>, | 555 | reg = <0x4013c000 0x80>, |
440 | <0x4903c000 0x80>; | 556 | <0x4903c000 0x80>; |
441 | interrupts = <0 43 0x4>; | 557 | interrupts = <0 43 0x4>; |
@@ -444,7 +560,7 @@ | |||
444 | }; | 560 | }; |
445 | 561 | ||
446 | timer8: timer@4013e000 { | 562 | timer8: timer@4013e000 { |
447 | compatible = "ti,omap2-timer"; | 563 | compatible = "ti,omap5430-timer"; |
448 | reg = <0x4013e000 0x80>, | 564 | reg = <0x4013e000 0x80>, |
449 | <0x4903e000 0x80>; | 565 | <0x4903e000 0x80>; |
450 | interrupts = <0 44 0x4>; | 566 | interrupts = <0 44 0x4>; |
@@ -454,27 +570,34 @@ | |||
454 | }; | 570 | }; |
455 | 571 | ||
456 | timer9: timer@4803e000 { | 572 | timer9: timer@4803e000 { |
457 | compatible = "ti,omap2-timer"; | 573 | compatible = "ti,omap5430-timer"; |
458 | reg = <0x4803e000 0x80>; | 574 | reg = <0x4803e000 0x80>; |
459 | interrupts = <0 45 0x4>; | 575 | interrupts = <0 45 0x4>; |
460 | ti,hwmods = "timer9"; | 576 | ti,hwmods = "timer9"; |
461 | }; | 577 | }; |
462 | 578 | ||
463 | timer10: timer@48086000 { | 579 | timer10: timer@48086000 { |
464 | compatible = "ti,omap2-timer"; | 580 | compatible = "ti,omap5430-timer"; |
465 | reg = <0x48086000 0x80>; | 581 | reg = <0x48086000 0x80>; |
466 | interrupts = <0 46 0x4>; | 582 | interrupts = <0 46 0x4>; |
467 | ti,hwmods = "timer10"; | 583 | ti,hwmods = "timer10"; |
468 | }; | 584 | }; |
469 | 585 | ||
470 | timer11: timer@48088000 { | 586 | timer11: timer@48088000 { |
471 | compatible = "ti,omap2-timer"; | 587 | compatible = "ti,omap5430-timer"; |
472 | reg = <0x48088000 0x80>; | 588 | reg = <0x48088000 0x80>; |
473 | interrupts = <0 47 0x4>; | 589 | interrupts = <0 47 0x4>; |
474 | ti,hwmods = "timer11"; | 590 | ti,hwmods = "timer11"; |
475 | ti,timer-pwm; | 591 | ti,timer-pwm; |
476 | }; | 592 | }; |
477 | 593 | ||
594 | wdt2: wdt@4ae14000 { | ||
595 | compatible = "ti,omap5-wdt", "ti,omap3-wdt"; | ||
596 | reg = <0x4ae14000 0x80>; | ||
597 | interrupts = <0 80 0x4>; | ||
598 | ti,hwmods = "wd_timer2"; | ||
599 | }; | ||
600 | |||
478 | emif1: emif@0x4c000000 { | 601 | emif1: emif@0x4c000000 { |
479 | compatible = "ti,emif-4d5"; | 602 | compatible = "ti,emif-4d5"; |
480 | ti,hwmods = "emif1"; | 603 | ti,hwmods = "emif1"; |
@@ -496,5 +619,53 @@ | |||
496 | hw-caps-ll-interface; | 619 | hw-caps-ll-interface; |
497 | hw-caps-temp-alert; | 620 | hw-caps-temp-alert; |
498 | }; | 621 | }; |
622 | |||
623 | omap_control_usb: omap-control-usb@4a002300 { | ||
624 | compatible = "ti,omap-control-usb"; | ||
625 | reg = <0x4a002300 0x4>, | ||
626 | <0x4a002370 0x4>; | ||
627 | reg-names = "control_dev_conf", "phy_power_usb"; | ||
628 | ti,type = <2>; | ||
629 | }; | ||
630 | |||
631 | omap_dwc3@4a020000 { | ||
632 | compatible = "ti,dwc3"; | ||
633 | ti,hwmods = "usb_otg_ss"; | ||
634 | reg = <0x4a020000 0x1000>; | ||
635 | interrupts = <0 93 4>; | ||
636 | #address-cells = <1>; | ||
637 | #size-cells = <1>; | ||
638 | utmi-mode = <2>; | ||
639 | ranges; | ||
640 | dwc3@4a030000 { | ||
641 | compatible = "synopsys,dwc3"; | ||
642 | reg = <0x4a030000 0x1000>; | ||
643 | interrupts = <0 92 4>; | ||
644 | usb-phy = <&usb2_phy>, <&usb3_phy>; | ||
645 | tx-fifo-resize; | ||
646 | }; | ||
647 | }; | ||
648 | |||
649 | ocp2scp { | ||
650 | compatible = "ti,omap-ocp2scp"; | ||
651 | #address-cells = <1>; | ||
652 | #size-cells = <1>; | ||
653 | ranges; | ||
654 | ti,hwmods = "ocp2scp1"; | ||
655 | usb2_phy: usb2phy@4a084000 { | ||
656 | compatible = "ti,omap-usb2"; | ||
657 | reg = <0x4a084000 0x7c>; | ||
658 | ctrl-module = <&omap_control_usb>; | ||
659 | }; | ||
660 | |||
661 | usb3_phy: usb3phy@4a084400 { | ||
662 | compatible = "ti,omap-usb3"; | ||
663 | reg = <0x4a084400 0x80>, | ||
664 | <0x4a084800 0x64>, | ||
665 | <0x4a084c00 0x40>; | ||
666 | reg-names = "phy_rx", "phy_tx", "pll_ctrl"; | ||
667 | ctrl-module = <&omap_control_usb>; | ||
668 | }; | ||
669 | }; | ||
499 | }; | 670 | }; |
500 | }; | 671 | }; |
diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index ed0bc9546837..b3034da00a37 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi | |||
@@ -23,6 +23,12 @@ | |||
23 | compatible = "ti,twl4030-wdt"; | 23 | compatible = "ti,twl4030-wdt"; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | vcc: regulator-vdd1 { | ||
27 | compatible = "ti,twl4030-vdd1"; | ||
28 | regulator-min-microvolt = <600000>; | ||
29 | regulator-max-microvolt = <1450000>; | ||
30 | }; | ||
31 | |||
26 | vdac: regulator-vdac { | 32 | vdac: regulator-vdac { |
27 | compatible = "ti,twl4030-vdac"; | 33 | compatible = "ti,twl4030-vdac"; |
28 | regulator-min-microvolt = <1800000>; | 34 | regulator-min-microvolt = <1800000>; |
@@ -67,7 +73,7 @@ | |||
67 | #interrupt-cells = <1>; | 73 | #interrupt-cells = <1>; |
68 | }; | 74 | }; |
69 | 75 | ||
70 | twl4030-usb { | 76 | usb2_phy: twl4030-usb { |
71 | compatible = "ti,twl4030-usb"; | 77 | compatible = "ti,twl4030-usb"; |
72 | interrupts = <10>, <4>; | 78 | interrupts = <10>, <4>; |
73 | usb1v5-supply = <&vusb1v5>; | 79 | usb1v5-supply = <&vusb1v5>; |
@@ -75,4 +81,14 @@ | |||
75 | usb3v1-supply = <&vusb3v1>; | 81 | usb3v1-supply = <&vusb3v1>; |
76 | usb_mode = <1>; | 82 | usb_mode = <1>; |
77 | }; | 83 | }; |
84 | |||
85 | twl_pwm: pwm { | ||
86 | compatible = "ti,twl4030-pwm"; | ||
87 | #pwm-cells = <2>; | ||
88 | }; | ||
89 | |||
90 | twl_pwmled: pwmled { | ||
91 | compatible = "ti,twl4030-pwmled"; | ||
92 | #pwm-cells = <2>; | ||
93 | }; | ||
78 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/twl6030.dtsi b/arch/arm/boot/dts/twl6030.dtsi index 9996cfc5ee80..2e3bd3172b23 100644 --- a/arch/arm/boot/dts/twl6030.dtsi +++ b/arch/arm/boot/dts/twl6030.dtsi | |||
@@ -91,4 +91,16 @@ | |||
91 | compatible = "ti,twl6030-usb"; | 91 | compatible = "ti,twl6030-usb"; |
92 | interrupts = <4>, <10>; | 92 | interrupts = <4>, <10>; |
93 | }; | 93 | }; |
94 | |||
95 | twl_pwm: pwm { | ||
96 | /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */ | ||
97 | compatible = "ti,twl6030-pwm"; | ||
98 | #pwm-cells = <2>; | ||
99 | }; | ||
100 | |||
101 | twl_pwmled: pwmled { | ||
102 | /* provides one PWM (id 0 for Charging indicator LED) */ | ||
103 | compatible = "ti,twl6030-pwmled"; | ||
104 | #pwm-cells = <2>; | ||
105 | }; | ||
94 | }; | 106 | }; |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index e54a48060198..afa509afb27c 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -110,6 +110,7 @@ MACHINE_END | |||
110 | 110 | ||
111 | static const char *omap3_gp_boards_compat[] __initdata = { | 111 | static const char *omap3_gp_boards_compat[] __initdata = { |
112 | "ti,omap3-beagle", | 112 | "ti,omap3-beagle", |
113 | "timll,omap3-devkit8000", | ||
113 | NULL, | 114 | NULL, |
114 | }; | 115 | }; |
115 | 116 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index e5cafed8ef25..63b774fb8089 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -138,6 +138,8 @@ | |||
138 | #include <linux/spinlock.h> | 138 | #include <linux/spinlock.h> |
139 | #include <linux/slab.h> | 139 | #include <linux/slab.h> |
140 | #include <linux/bootmem.h> | 140 | #include <linux/bootmem.h> |
141 | #include <linux/of.h> | ||
142 | #include <linux/of_address.h> | ||
141 | 143 | ||
142 | #include <asm/system_misc.h> | 144 | #include <asm/system_misc.h> |
143 | 145 | ||
@@ -2346,6 +2348,34 @@ static int _shutdown(struct omap_hwmod *oh) | |||
2346 | } | 2348 | } |
2347 | 2349 | ||
2348 | /** | 2350 | /** |
2351 | * of_dev_hwmod_lookup - look up needed hwmod from dt blob | ||
2352 | * @np: struct device_node * | ||
2353 | * @oh: struct omap_hwmod * | ||
2354 | * | ||
2355 | * Parse the dt blob and find out needed hwmod. Recursive function is | ||
2356 | * implemented to take care hierarchical dt blob parsing. | ||
2357 | * Return: The device node on success or NULL on failure. | ||
2358 | */ | ||
2359 | static struct device_node *of_dev_hwmod_lookup(struct device_node *np, | ||
2360 | struct omap_hwmod *oh) | ||
2361 | { | ||
2362 | struct device_node *np0 = NULL, *np1 = NULL; | ||
2363 | const char *p; | ||
2364 | |||
2365 | for_each_child_of_node(np, np0) { | ||
2366 | if (of_find_property(np0, "ti,hwmods", NULL)) { | ||
2367 | p = of_get_property(np0, "ti,hwmods", NULL); | ||
2368 | if (!strcmp(p, oh->name)) | ||
2369 | return np0; | ||
2370 | np1 = of_dev_hwmod_lookup(np0, oh); | ||
2371 | if (np1) | ||
2372 | return np1; | ||
2373 | } | ||
2374 | } | ||
2375 | return NULL; | ||
2376 | } | ||
2377 | |||
2378 | /** | ||
2349 | * _init_mpu_rt_base - populate the virtual address for a hwmod | 2379 | * _init_mpu_rt_base - populate the virtual address for a hwmod |
2350 | * @oh: struct omap_hwmod * to locate the virtual address | 2380 | * @oh: struct omap_hwmod * to locate the virtual address |
2351 | * | 2381 | * |
@@ -2357,7 +2387,8 @@ static int _shutdown(struct omap_hwmod *oh) | |||
2357 | static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data) | 2387 | static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data) |
2358 | { | 2388 | { |
2359 | struct omap_hwmod_addr_space *mem; | 2389 | struct omap_hwmod_addr_space *mem; |
2360 | void __iomem *va_start; | 2390 | void __iomem *va_start = NULL; |
2391 | struct device_node *np; | ||
2361 | 2392 | ||
2362 | if (!oh) | 2393 | if (!oh) |
2363 | return; | 2394 | return; |
@@ -2371,10 +2402,18 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data) | |||
2371 | if (!mem) { | 2402 | if (!mem) { |
2372 | pr_debug("omap_hwmod: %s: no MPU register target found\n", | 2403 | pr_debug("omap_hwmod: %s: no MPU register target found\n", |
2373 | oh->name); | 2404 | oh->name); |
2374 | return; | 2405 | |
2406 | /* Extract the IO space from device tree blob */ | ||
2407 | if (!of_have_populated_dt()) | ||
2408 | return; | ||
2409 | |||
2410 | np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh); | ||
2411 | if (np) | ||
2412 | va_start = of_iomap(np, 0); | ||
2413 | } else { | ||
2414 | va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start); | ||
2375 | } | 2415 | } |
2376 | 2416 | ||
2377 | va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start); | ||
2378 | if (!va_start) { | 2417 | if (!va_start) { |
2379 | pr_err("omap_hwmod: %s: Could not ioremap\n", oh->name); | 2418 | pr_err("omap_hwmod: %s: Could not ioremap\n", oh->name); |
2380 | return; | 2419 | return; |
@@ -2406,7 +2445,8 @@ static int __init _init(struct omap_hwmod *oh, void *data) | |||
2406 | if (oh->_state != _HWMOD_STATE_REGISTERED) | 2445 | if (oh->_state != _HWMOD_STATE_REGISTERED) |
2407 | return 0; | 2446 | return 0; |
2408 | 2447 | ||
2409 | _init_mpu_rt_base(oh, NULL); | 2448 | if (oh->class->sysc) |
2449 | _init_mpu_rt_base(oh, NULL); | ||
2410 | 2450 | ||
2411 | r = _init_clocks(oh, NULL); | 2451 | r = _init_clocks(oh, NULL); |
2412 | if (IS_ERR_VALUE(r)) { | 2452 | if (IS_ERR_VALUE(r)) { |
diff --git a/arch/arm/mach-omap2/pmu.c b/arch/arm/mach-omap2/pmu.c index 9debf822687c..9ace8eae7ee8 100644 --- a/arch/arm/mach-omap2/pmu.c +++ b/arch/arm/mach-omap2/pmu.c | |||
@@ -11,6 +11,8 @@ | |||
11 | * the Free Software Foundation; either version 2 of the License, or | 11 | * the Free Software Foundation; either version 2 of the License, or |
12 | * (at your option) any later version. | 12 | * (at your option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/of.h> | ||
15 | |||
14 | #include <asm/pmu.h> | 16 | #include <asm/pmu.h> |
15 | 17 | ||
16 | #include "soc.h" | 18 | #include "soc.h" |
@@ -63,6 +65,15 @@ static int __init omap_init_pmu(void) | |||
63 | unsigned oh_num; | 65 | unsigned oh_num; |
64 | char **oh_names; | 66 | char **oh_names; |
65 | 67 | ||
68 | /* XXX Remove this check when the CTI driver is available */ | ||
69 | if (cpu_is_omap443x()) { | ||
70 | pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n"); | ||
71 | return 0; | ||
72 | } | ||
73 | |||
74 | if (of_have_populated_dt()) | ||
75 | return 0; | ||
76 | |||
66 | /* | 77 | /* |
67 | * To create an ARM-PMU device the following HWMODs | 78 | * To create an ARM-PMU device the following HWMODs |
68 | * are required for the various OMAP2+ devices. | 79 | * are required for the various OMAP2+ devices. |
@@ -75,9 +86,6 @@ static int __init omap_init_pmu(void) | |||
75 | if (cpu_is_omap443x()) { | 86 | if (cpu_is_omap443x()) { |
76 | oh_num = ARRAY_SIZE(omap4430_pmu_oh_names); | 87 | oh_num = ARRAY_SIZE(omap4430_pmu_oh_names); |
77 | oh_names = omap4430_pmu_oh_names; | 88 | oh_names = omap4430_pmu_oh_names; |
78 | /* XXX Remove the next two lines when CTI driver available */ | ||
79 | pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n"); | ||
80 | return 0; | ||
81 | } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) { | 89 | } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) { |
82 | oh_num = ARRAY_SIZE(omap3_pmu_oh_names); | 90 | oh_num = ARRAY_SIZE(omap3_pmu_oh_names); |
83 | oh_names = omap3_pmu_oh_names; | 91 | oh_names = omap3_pmu_oh_names; |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 32c26e4143db..58d86d7abada 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -144,7 +144,12 @@ static struct property device_disabled = { | |||
144 | }; | 144 | }; |
145 | 145 | ||
146 | static struct of_device_id omap_timer_match[] __initdata = { | 146 | static struct of_device_id omap_timer_match[] __initdata = { |
147 | { .compatible = "ti,omap2-timer", }, | 147 | { .compatible = "ti,omap2420-timer", }, |
148 | { .compatible = "ti,omap3430-timer", }, | ||
149 | { .compatible = "ti,omap4430-timer", }, | ||
150 | { .compatible = "ti,omap5430-timer", }, | ||
151 | { .compatible = "ti,am335x-timer", }, | ||
152 | { .compatible = "ti,am335x-timer-1ms", }, | ||
148 | { } | 153 | { } |
149 | }; | 154 | }; |
150 | 155 | ||
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index a0daa2fb5de6..5d0af13adb9b 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -52,6 +52,13 @@ static u32 omap_reserved_systimers; | |||
52 | static LIST_HEAD(omap_timer_list); | 52 | static LIST_HEAD(omap_timer_list); |
53 | static DEFINE_SPINLOCK(dm_timer_lock); | 53 | static DEFINE_SPINLOCK(dm_timer_lock); |
54 | 54 | ||
55 | enum { | ||
56 | REQUEST_ANY = 0, | ||
57 | REQUEST_BY_ID, | ||
58 | REQUEST_BY_CAP, | ||
59 | REQUEST_BY_NODE, | ||
60 | }; | ||
61 | |||
55 | /** | 62 | /** |
56 | * omap_dm_timer_read_reg - read timer registers in posted and non-posted mode | 63 | * omap_dm_timer_read_reg - read timer registers in posted and non-posted mode |
57 | * @timer: timer pointer over which read operation to perform | 64 | * @timer: timer pointer over which read operation to perform |
@@ -178,29 +185,82 @@ int omap_dm_timer_reserve_systimer(int id) | |||
178 | return 0; | 185 | return 0; |
179 | } | 186 | } |
180 | 187 | ||
181 | struct omap_dm_timer *omap_dm_timer_request(void) | 188 | static struct omap_dm_timer *_omap_dm_timer_request(int req_type, void *data) |
182 | { | 189 | { |
183 | struct omap_dm_timer *timer = NULL, *t; | 190 | struct omap_dm_timer *timer = NULL, *t; |
191 | struct device_node *np = NULL; | ||
184 | unsigned long flags; | 192 | unsigned long flags; |
185 | int ret = 0; | 193 | u32 cap = 0; |
194 | int id = 0; | ||
195 | |||
196 | switch (req_type) { | ||
197 | case REQUEST_BY_ID: | ||
198 | id = *(int *)data; | ||
199 | break; | ||
200 | case REQUEST_BY_CAP: | ||
201 | cap = *(u32 *)data; | ||
202 | break; | ||
203 | case REQUEST_BY_NODE: | ||
204 | np = (struct device_node *)data; | ||
205 | break; | ||
206 | default: | ||
207 | /* REQUEST_ANY */ | ||
208 | break; | ||
209 | } | ||
186 | 210 | ||
187 | spin_lock_irqsave(&dm_timer_lock, flags); | 211 | spin_lock_irqsave(&dm_timer_lock, flags); |
188 | list_for_each_entry(t, &omap_timer_list, node) { | 212 | list_for_each_entry(t, &omap_timer_list, node) { |
189 | if (t->reserved) | 213 | if (t->reserved) |
190 | continue; | 214 | continue; |
191 | 215 | ||
192 | timer = t; | 216 | switch (req_type) { |
193 | timer->reserved = 1; | 217 | case REQUEST_BY_ID: |
194 | break; | 218 | if (id == t->pdev->id) { |
219 | timer = t; | ||
220 | timer->reserved = 1; | ||
221 | goto found; | ||
222 | } | ||
223 | break; | ||
224 | case REQUEST_BY_CAP: | ||
225 | if (cap == (t->capability & cap)) { | ||
226 | /* | ||
227 | * If timer is not NULL, we have already found | ||
228 | * one timer but it was not an exact match | ||
229 | * because it had more capabilites that what | ||
230 | * was required. Therefore, unreserve the last | ||
231 | * timer found and see if this one is a better | ||
232 | * match. | ||
233 | */ | ||
234 | if (timer) | ||
235 | timer->reserved = 0; | ||
236 | timer = t; | ||
237 | timer->reserved = 1; | ||
238 | |||
239 | /* Exit loop early if we find an exact match */ | ||
240 | if (t->capability == cap) | ||
241 | goto found; | ||
242 | } | ||
243 | break; | ||
244 | case REQUEST_BY_NODE: | ||
245 | if (np == t->pdev->dev.of_node) { | ||
246 | timer = t; | ||
247 | timer->reserved = 1; | ||
248 | goto found; | ||
249 | } | ||
250 | break; | ||
251 | default: | ||
252 | /* REQUEST_ANY */ | ||
253 | timer = t; | ||
254 | timer->reserved = 1; | ||
255 | goto found; | ||
256 | } | ||
195 | } | 257 | } |
258 | found: | ||
196 | spin_unlock_irqrestore(&dm_timer_lock, flags); | 259 | spin_unlock_irqrestore(&dm_timer_lock, flags); |
197 | 260 | ||
198 | if (timer) { | 261 | if (timer && omap_dm_timer_prepare(timer)) { |
199 | ret = omap_dm_timer_prepare(timer); | 262 | timer->reserved = 0; |
200 | if (ret) { | 263 | timer = NULL; |
201 | timer->reserved = 0; | ||
202 | timer = NULL; | ||
203 | } | ||
204 | } | 264 | } |
205 | 265 | ||
206 | if (!timer) | 266 | if (!timer) |
@@ -208,43 +268,23 @@ struct omap_dm_timer *omap_dm_timer_request(void) | |||
208 | 268 | ||
209 | return timer; | 269 | return timer; |
210 | } | 270 | } |
271 | |||
272 | struct omap_dm_timer *omap_dm_timer_request(void) | ||
273 | { | ||
274 | return _omap_dm_timer_request(REQUEST_ANY, NULL); | ||
275 | } | ||
211 | EXPORT_SYMBOL_GPL(omap_dm_timer_request); | 276 | EXPORT_SYMBOL_GPL(omap_dm_timer_request); |
212 | 277 | ||
213 | struct omap_dm_timer *omap_dm_timer_request_specific(int id) | 278 | struct omap_dm_timer *omap_dm_timer_request_specific(int id) |
214 | { | 279 | { |
215 | struct omap_dm_timer *timer = NULL, *t; | ||
216 | unsigned long flags; | ||
217 | int ret = 0; | ||
218 | |||
219 | /* Requesting timer by ID is not supported when device tree is used */ | 280 | /* Requesting timer by ID is not supported when device tree is used */ |
220 | if (of_have_populated_dt()) { | 281 | if (of_have_populated_dt()) { |
221 | pr_warn("%s: Please use omap_dm_timer_request_by_cap()\n", | 282 | pr_warn("%s: Please use omap_dm_timer_request_by_cap/node()\n", |
222 | __func__); | 283 | __func__); |
223 | return NULL; | 284 | return NULL; |
224 | } | 285 | } |
225 | 286 | ||
226 | spin_lock_irqsave(&dm_timer_lock, flags); | 287 | return _omap_dm_timer_request(REQUEST_BY_ID, &id); |
227 | list_for_each_entry(t, &omap_timer_list, node) { | ||
228 | if (t->pdev->id == id && !t->reserved) { | ||
229 | timer = t; | ||
230 | timer->reserved = 1; | ||
231 | break; | ||
232 | } | ||
233 | } | ||
234 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
235 | |||
236 | if (timer) { | ||
237 | ret = omap_dm_timer_prepare(timer); | ||
238 | if (ret) { | ||
239 | timer->reserved = 0; | ||
240 | timer = NULL; | ||
241 | } | ||
242 | } | ||
243 | |||
244 | if (!timer) | ||
245 | pr_debug("%s: timer%d request failed!\n", __func__, id); | ||
246 | |||
247 | return timer; | ||
248 | } | 288 | } |
249 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific); | 289 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific); |
250 | 290 | ||
@@ -259,46 +299,25 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific); | |||
259 | */ | 299 | */ |
260 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap) | 300 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap) |
261 | { | 301 | { |
262 | struct omap_dm_timer *timer = NULL, *t; | 302 | return _omap_dm_timer_request(REQUEST_BY_CAP, &cap); |
263 | unsigned long flags; | 303 | } |
304 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap); | ||
264 | 305 | ||
265 | if (!cap) | 306 | /** |
307 | * omap_dm_timer_request_by_node - Request a timer by device-tree node | ||
308 | * @np: Pointer to device-tree timer node | ||
309 | * | ||
310 | * Request a timer based upon a device node pointer. Returns pointer to | ||
311 | * timer handle on success and a NULL pointer on failure. | ||
312 | */ | ||
313 | struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np) | ||
314 | { | ||
315 | if (!np) | ||
266 | return NULL; | 316 | return NULL; |
267 | 317 | ||
268 | spin_lock_irqsave(&dm_timer_lock, flags); | 318 | return _omap_dm_timer_request(REQUEST_BY_NODE, np); |
269 | list_for_each_entry(t, &omap_timer_list, node) { | ||
270 | if ((!t->reserved) && ((t->capability & cap) == cap)) { | ||
271 | /* | ||
272 | * If timer is not NULL, we have already found one timer | ||
273 | * but it was not an exact match because it had more | ||
274 | * capabilites that what was required. Therefore, | ||
275 | * unreserve the last timer found and see if this one | ||
276 | * is a better match. | ||
277 | */ | ||
278 | if (timer) | ||
279 | timer->reserved = 0; | ||
280 | |||
281 | timer = t; | ||
282 | timer->reserved = 1; | ||
283 | |||
284 | /* Exit loop early if we find an exact match */ | ||
285 | if (t->capability == cap) | ||
286 | break; | ||
287 | } | ||
288 | } | ||
289 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
290 | |||
291 | if (timer && omap_dm_timer_prepare(timer)) { | ||
292 | timer->reserved = 0; | ||
293 | timer = NULL; | ||
294 | } | ||
295 | |||
296 | if (!timer) | ||
297 | pr_debug("%s: timer request failed!\n", __func__); | ||
298 | |||
299 | return timer; | ||
300 | } | 319 | } |
301 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap); | 320 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_node); |
302 | 321 | ||
303 | int omap_dm_timer_free(struct omap_dm_timer *timer) | 322 | int omap_dm_timer_free(struct omap_dm_timer *timer) |
304 | { | 323 | { |
@@ -315,7 +334,21 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_free); | |||
315 | 334 | ||
316 | void omap_dm_timer_enable(struct omap_dm_timer *timer) | 335 | void omap_dm_timer_enable(struct omap_dm_timer *timer) |
317 | { | 336 | { |
337 | int c; | ||
338 | |||
318 | pm_runtime_get_sync(&timer->pdev->dev); | 339 | pm_runtime_get_sync(&timer->pdev->dev); |
340 | |||
341 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
342 | if (timer->get_context_loss_count) { | ||
343 | c = timer->get_context_loss_count(&timer->pdev->dev); | ||
344 | if (c != timer->ctx_loss_count) { | ||
345 | omap_timer_restore_context(timer); | ||
346 | timer->ctx_loss_count = c; | ||
347 | } | ||
348 | } else { | ||
349 | omap_timer_restore_context(timer); | ||
350 | } | ||
351 | } | ||
319 | } | 352 | } |
320 | EXPORT_SYMBOL_GPL(omap_dm_timer_enable); | 353 | EXPORT_SYMBOL_GPL(omap_dm_timer_enable); |
321 | 354 | ||
@@ -410,13 +443,6 @@ int omap_dm_timer_start(struct omap_dm_timer *timer) | |||
410 | 443 | ||
411 | omap_dm_timer_enable(timer); | 444 | omap_dm_timer_enable(timer); |
412 | 445 | ||
413 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
414 | if (timer->get_context_loss_count && | ||
415 | timer->get_context_loss_count(&timer->pdev->dev) != | ||
416 | timer->ctx_loss_count) | ||
417 | omap_timer_restore_context(timer); | ||
418 | } | ||
419 | |||
420 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); | 446 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); |
421 | if (!(l & OMAP_TIMER_CTRL_ST)) { | 447 | if (!(l & OMAP_TIMER_CTRL_ST)) { |
422 | l |= OMAP_TIMER_CTRL_ST; | 448 | l |= OMAP_TIMER_CTRL_ST; |
@@ -441,12 +467,6 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer) | |||
441 | 467 | ||
442 | __omap_dm_timer_stop(timer, timer->posted, rate); | 468 | __omap_dm_timer_stop(timer, timer->posted, rate); |
443 | 469 | ||
444 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
445 | if (timer->get_context_loss_count) | ||
446 | timer->ctx_loss_count = | ||
447 | timer->get_context_loss_count(&timer->pdev->dev); | ||
448 | } | ||
449 | |||
450 | /* | 470 | /* |
451 | * Since the register values are computed and written within | 471 | * Since the register values are computed and written within |
452 | * __omap_dm_timer_stop, we need to use read to retrieve the | 472 | * __omap_dm_timer_stop, we need to use read to retrieve the |
@@ -553,13 +573,6 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, | |||
553 | 573 | ||
554 | omap_dm_timer_enable(timer); | 574 | omap_dm_timer_enable(timer); |
555 | 575 | ||
556 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
557 | if (timer->get_context_loss_count && | ||
558 | timer->get_context_loss_count(&timer->pdev->dev) != | ||
559 | timer->ctx_loss_count) | ||
560 | omap_timer_restore_context(timer); | ||
561 | } | ||
562 | |||
563 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); | 576 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); |
564 | if (autoreload) { | 577 | if (autoreload) { |
565 | l |= OMAP_TIMER_CTRL_AR; | 578 | l |= OMAP_TIMER_CTRL_AR; |
@@ -770,6 +783,8 @@ int omap_dm_timers_active(void) | |||
770 | } | 783 | } |
771 | EXPORT_SYMBOL_GPL(omap_dm_timers_active); | 784 | EXPORT_SYMBOL_GPL(omap_dm_timers_active); |
772 | 785 | ||
786 | static const struct of_device_id omap_timer_match[]; | ||
787 | |||
773 | /** | 788 | /** |
774 | * omap_dm_timer_probe - probe function called for every registered device | 789 | * omap_dm_timer_probe - probe function called for every registered device |
775 | * @pdev: pointer to current timer platform device | 790 | * @pdev: pointer to current timer platform device |
@@ -783,7 +798,11 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
783 | struct omap_dm_timer *timer; | 798 | struct omap_dm_timer *timer; |
784 | struct resource *mem, *irq; | 799 | struct resource *mem, *irq; |
785 | struct device *dev = &pdev->dev; | 800 | struct device *dev = &pdev->dev; |
786 | struct dmtimer_platform_data *pdata = pdev->dev.platform_data; | 801 | const struct of_device_id *match; |
802 | const struct dmtimer_platform_data *pdata; | ||
803 | |||
804 | match = of_match_device(of_match_ptr(omap_timer_match), dev); | ||
805 | pdata = match ? match->data : dev->platform_data; | ||
787 | 806 | ||
788 | if (!pdata && !dev->of_node) { | 807 | if (!pdata && !dev->of_node) { |
789 | dev_err(dev, "%s: no platform data.\n", __func__); | 808 | dev_err(dev, "%s: no platform data.\n", __func__); |
@@ -823,12 +842,14 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
823 | timer->capability |= OMAP_TIMER_SECURE; | 842 | timer->capability |= OMAP_TIMER_SECURE; |
824 | } else { | 843 | } else { |
825 | timer->id = pdev->id; | 844 | timer->id = pdev->id; |
826 | timer->errata = pdata->timer_errata; | ||
827 | timer->capability = pdata->timer_capability; | 845 | timer->capability = pdata->timer_capability; |
828 | timer->reserved = omap_dm_timer_reserved_systimer(timer->id); | 846 | timer->reserved = omap_dm_timer_reserved_systimer(timer->id); |
829 | timer->get_context_loss_count = pdata->get_context_loss_count; | 847 | timer->get_context_loss_count = pdata->get_context_loss_count; |
830 | } | 848 | } |
831 | 849 | ||
850 | if (pdata) | ||
851 | timer->errata = pdata->timer_errata; | ||
852 | |||
832 | timer->irq = irq->start; | 853 | timer->irq = irq->start; |
833 | timer->pdev = pdev; | 854 | timer->pdev = pdev; |
834 | 855 | ||
@@ -881,8 +902,34 @@ static int omap_dm_timer_remove(struct platform_device *pdev) | |||
881 | return ret; | 902 | return ret; |
882 | } | 903 | } |
883 | 904 | ||
905 | static const struct dmtimer_platform_data omap3plus_pdata = { | ||
906 | .timer_errata = OMAP_TIMER_ERRATA_I103_I767, | ||
907 | }; | ||
908 | |||
884 | static const struct of_device_id omap_timer_match[] = { | 909 | static const struct of_device_id omap_timer_match[] = { |
885 | { .compatible = "ti,omap2-timer", }, | 910 | { |
911 | .compatible = "ti,omap2420-timer", | ||
912 | }, | ||
913 | { | ||
914 | .compatible = "ti,omap3430-timer", | ||
915 | .data = &omap3plus_pdata, | ||
916 | }, | ||
917 | { | ||
918 | .compatible = "ti,omap4430-timer", | ||
919 | .data = &omap3plus_pdata, | ||
920 | }, | ||
921 | { | ||
922 | .compatible = "ti,omap5430-timer", | ||
923 | .data = &omap3plus_pdata, | ||
924 | }, | ||
925 | { | ||
926 | .compatible = "ti,am335x-timer", | ||
927 | .data = &omap3plus_pdata, | ||
928 | }, | ||
929 | { | ||
930 | .compatible = "ti,am335x-timer-1ms", | ||
931 | .data = &omap3plus_pdata, | ||
932 | }, | ||
886 | {}, | 933 | {}, |
887 | }; | 934 | }; |
888 | MODULE_DEVICE_TABLE(of, omap_timer_match); | 935 | MODULE_DEVICE_TABLE(of, omap_timer_match); |
diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h index a3fbc48c332e..fb92abb91628 100644 --- a/arch/arm/plat-omap/include/plat/dmtimer.h +++ b/arch/arm/plat-omap/include/plat/dmtimer.h | |||
@@ -128,6 +128,7 @@ int omap_dm_timer_reserve_systimer(int id); | |||
128 | struct omap_dm_timer *omap_dm_timer_request(void); | 128 | struct omap_dm_timer *omap_dm_timer_request(void); |
129 | struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id); | 129 | struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id); |
130 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap); | 130 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap); |
131 | struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np); | ||
131 | int omap_dm_timer_free(struct omap_dm_timer *timer); | 132 | int omap_dm_timer_free(struct omap_dm_timer *timer); |
132 | void omap_dm_timer_enable(struct omap_dm_timer *timer); | 133 | void omap_dm_timer_enable(struct omap_dm_timer *timer); |
133 | void omap_dm_timer_disable(struct omap_dm_timer *timer); | 134 | void omap_dm_timer_disable(struct omap_dm_timer *timer); |