diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-11-16 11:57:23 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-11-16 11:57:23 -0500 |
commit | e014f774d32b8930215c95fd19307b5395b996e2 (patch) | |
tree | 601de96d3011703965da3bc04b311535a9d91556 /arch/arm | |
parent | 93363526c8fcd9dbbc0562c0642df6114ed04217 (diff) | |
parent | 96efb44e471250592ee865ce5b870bc6f860921f (diff) |
Merge tag 'imx-dt-3.8' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/dt
From Shawn Guo <shawn.guo@linaro.org>:
It's based on imx/multiplatform branch. Most of them are dts changes.
There are also a few imx6 improvement patches in there.
* tag 'imx-dt-3.8' of git://git.linaro.org/people/shawnguo/linux-2.6:
ARM: imx6q: select ARM and PL310 errata
ARM: imx6q: print silicon version on boot
ARM i.MX dts: Consistently add labels to devicenodes
ARM: dts: imx6q-sabresd: add volume up/down gpio keys
ARM: dts: imx53: pinctl update
ARM: imx: enable cpufreq for imx6q
ARM: dts: imx6q: enable snvs lp rtc
ARM: dts: imx6q-sabreauto: Add basic support
ARM: imx6q: let users input debug uart port number
ARM: dts: imx53-qsb: Make DA9053 regulator functional
ARM: dts: imx53-qsb: Use pinctrl for gpio-led
ARM i.MX dtsi: Add default bus-width property for esdhc controller
Signed-off-by: Arnd Bregmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Kconfig.debug | 26 | ||||
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx27.dtsi | 5 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx51.dtsi | 43 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx53-qsb.dts | 62 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx53.dtsi | 92 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6q-sabreauto.dts | 64 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6q-sabresd.dts | 18 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6q.dtsi | 114 | ||||
-rw-r--r-- | arch/arm/include/debug/imx.S | 20 | ||||
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 11 | ||||
-rw-r--r-- | arch/arm/mach-imx/clk-imx6q.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/lluart.c | 28 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx6q.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-imx/mx6q.h | 4 |
15 files changed, 385 insertions, 139 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 5bbfcf0d35e0..00e9a53888ba 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -226,20 +226,12 @@ choice | |||
226 | Say Y here if you want kernel low-level debugging support | 226 | Say Y here if you want kernel low-level debugging support |
227 | on i.MX50 or i.MX53. | 227 | on i.MX50 or i.MX53. |
228 | 228 | ||
229 | config DEBUG_IMX6Q_UART2 | 229 | config DEBUG_IMX6Q_UART |
230 | bool "i.MX6Q Debug UART2" | 230 | bool "i.MX6Q Debug UART" |
231 | depends on SOC_IMX6Q | 231 | depends on SOC_IMX6Q |
232 | help | 232 | help |
233 | Say Y here if you want kernel low-level debugging support | 233 | Say Y here if you want kernel low-level debugging support |
234 | on i.MX6Q UART2. This is correct for e.g. the SabreLite | 234 | on i.MX6Q. |
235 | board. | ||
236 | |||
237 | config DEBUG_IMX6Q_UART4 | ||
238 | bool "i.MX6Q Debug UART4" | ||
239 | depends on SOC_IMX6Q | ||
240 | help | ||
241 | Say Y here if you want kernel low-level debugging support | ||
242 | on i.MX6Q UART4. | ||
243 | 235 | ||
244 | config DEBUG_MMP_UART2 | 236 | config DEBUG_MMP_UART2 |
245 | bool "Kernel low-level debugging message via MMP UART2" | 237 | bool "Kernel low-level debugging message via MMP UART2" |
@@ -426,6 +418,15 @@ choice | |||
426 | 418 | ||
427 | endchoice | 419 | endchoice |
428 | 420 | ||
421 | config DEBUG_IMX6Q_UART_PORT | ||
422 | int "i.MX6Q Debug UART Port (1-5)" if DEBUG_IMX6Q_UART | ||
423 | range 1 5 | ||
424 | default 1 | ||
425 | depends on SOC_IMX6Q | ||
426 | help | ||
427 | Choose UART port on which kernel low-level debug messages | ||
428 | should be output. | ||
429 | |||
429 | config DEBUG_LL_INCLUDE | 430 | config DEBUG_LL_INCLUDE |
430 | string | 431 | string |
431 | default "debug/icedcc.S" if DEBUG_ICEDCC | 432 | default "debug/icedcc.S" if DEBUG_ICEDCC |
@@ -435,8 +436,7 @@ config DEBUG_LL_INCLUDE | |||
435 | DEBUG_IMX31_IMX35_UART || \ | 436 | DEBUG_IMX31_IMX35_UART || \ |
436 | DEBUG_IMX51_UART || \ | 437 | DEBUG_IMX51_UART || \ |
437 | DEBUG_IMX50_IMX53_UART ||\ | 438 | DEBUG_IMX50_IMX53_UART ||\ |
438 | DEBUG_IMX6Q_UART2 || \ | 439 | DEBUG_IMX6Q_UART |
439 | DEBUG_IMX6Q_UART4 | ||
440 | default "debug/highbank.S" if DEBUG_HIGHBANK_UART | 440 | default "debug/highbank.S" if DEBUG_HIGHBANK_UART |
441 | default "debug/mvebu.S" if DEBUG_MVEBU_UART | 441 | default "debug/mvebu.S" if DEBUG_MVEBU_UART |
442 | default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART | 442 | default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 1f23acfe5cbc..7fd1336da891 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \ | |||
51 | imx53-qsb.dtb \ | 51 | imx53-qsb.dtb \ |
52 | imx53-smd.dtb \ | 52 | imx53-smd.dtb \ |
53 | imx6q-arm2.dtb \ | 53 | imx6q-arm2.dtb \ |
54 | imx6q-sabreauto.dtb \ | ||
54 | imx6q-sabrelite.dtb \ | 55 | imx6q-sabrelite.dtb \ |
55 | imx6q-sabresd.dtb | 56 | imx6q-sabresd.dtb |
56 | dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ | 57 | dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ |
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi index 67d672792b0d..b8d3905915ac 100644 --- a/arch/arm/boot/dts/imx27.dtsi +++ b/arch/arm/boot/dts/imx27.dtsi | |||
@@ -58,7 +58,7 @@ | |||
58 | reg = <0x10000000 0x10000000>; | 58 | reg = <0x10000000 0x10000000>; |
59 | ranges; | 59 | ranges; |
60 | 60 | ||
61 | wdog@10002000 { | 61 | wdog: wdog@10002000 { |
62 | compatible = "fsl,imx27-wdt", "fsl,imx21-wdt"; | 62 | compatible = "fsl,imx27-wdt", "fsl,imx21-wdt"; |
63 | reg = <0x10002000 0x4000>; | 63 | reg = <0x10002000 0x4000>; |
64 | interrupts = <27>; | 64 | interrupts = <27>; |
@@ -218,7 +218,8 @@ | |||
218 | status = "disabled"; | 218 | status = "disabled"; |
219 | }; | 219 | }; |
220 | }; | 220 | }; |
221 | nand@d8000000 { | 221 | |
222 | nfc: nand@d8000000 { | ||
222 | #address-cells = <1>; | 223 | #address-cells = <1>; |
223 | #size-cells = <1>; | 224 | #size-cells = <1>; |
224 | 225 | ||
diff --git a/arch/arm/boot/dts/imx51.dtsi b/arch/arm/boot/dts/imx51.dtsi index 54aea74769a1..1fdee31b4909 100644 --- a/arch/arm/boot/dts/imx51.dtsi +++ b/arch/arm/boot/dts/imx51.dtsi | |||
@@ -76,17 +76,18 @@ | |||
76 | reg = <0x70000000 0x40000>; | 76 | reg = <0x70000000 0x40000>; |
77 | ranges; | 77 | ranges; |
78 | 78 | ||
79 | esdhc@70004000 { /* ESDHC1 */ | 79 | esdhc1: esdhc@70004000 { |
80 | compatible = "fsl,imx51-esdhc"; | 80 | compatible = "fsl,imx51-esdhc"; |
81 | reg = <0x70004000 0x4000>; | 81 | reg = <0x70004000 0x4000>; |
82 | interrupts = <1>; | 82 | interrupts = <1>; |
83 | status = "disabled"; | 83 | status = "disabled"; |
84 | }; | 84 | }; |
85 | 85 | ||
86 | esdhc@70008000 { /* ESDHC2 */ | 86 | esdhc2: esdhc@70008000 { |
87 | compatible = "fsl,imx51-esdhc"; | 87 | compatible = "fsl,imx51-esdhc"; |
88 | reg = <0x70008000 0x4000>; | 88 | reg = <0x70008000 0x4000>; |
89 | interrupts = <2>; | 89 | interrupts = <2>; |
90 | bus-width = <4>; | ||
90 | status = "disabled"; | 91 | status = "disabled"; |
91 | }; | 92 | }; |
92 | 93 | ||
@@ -97,7 +98,7 @@ | |||
97 | status = "disabled"; | 98 | status = "disabled"; |
98 | }; | 99 | }; |
99 | 100 | ||
100 | ecspi@70010000 { /* ECSPI1 */ | 101 | ecspi1: ecspi@70010000 { |
101 | #address-cells = <1>; | 102 | #address-cells = <1>; |
102 | #size-cells = <0>; | 103 | #size-cells = <0>; |
103 | compatible = "fsl,imx51-ecspi"; | 104 | compatible = "fsl,imx51-ecspi"; |
@@ -115,43 +116,45 @@ | |||
115 | status = "disabled"; | 116 | status = "disabled"; |
116 | }; | 117 | }; |
117 | 118 | ||
118 | esdhc@70020000 { /* ESDHC3 */ | 119 | esdhc3: esdhc@70020000 { |
119 | compatible = "fsl,imx51-esdhc"; | 120 | compatible = "fsl,imx51-esdhc"; |
120 | reg = <0x70020000 0x4000>; | 121 | reg = <0x70020000 0x4000>; |
121 | interrupts = <3>; | 122 | interrupts = <3>; |
123 | bus-width = <4>; | ||
122 | status = "disabled"; | 124 | status = "disabled"; |
123 | }; | 125 | }; |
124 | 126 | ||
125 | esdhc@70024000 { /* ESDHC4 */ | 127 | esdhc4: esdhc@70024000 { |
126 | compatible = "fsl,imx51-esdhc"; | 128 | compatible = "fsl,imx51-esdhc"; |
127 | reg = <0x70024000 0x4000>; | 129 | reg = <0x70024000 0x4000>; |
128 | interrupts = <4>; | 130 | interrupts = <4>; |
131 | bus-width = <4>; | ||
129 | status = "disabled"; | 132 | status = "disabled"; |
130 | }; | 133 | }; |
131 | }; | 134 | }; |
132 | 135 | ||
133 | usb@73f80000 { | 136 | usbotg: usb@73f80000 { |
134 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; | 137 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
135 | reg = <0x73f80000 0x0200>; | 138 | reg = <0x73f80000 0x0200>; |
136 | interrupts = <18>; | 139 | interrupts = <18>; |
137 | status = "disabled"; | 140 | status = "disabled"; |
138 | }; | 141 | }; |
139 | 142 | ||
140 | usb@73f80200 { | 143 | usbh1: usb@73f80200 { |
141 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; | 144 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
142 | reg = <0x73f80200 0x0200>; | 145 | reg = <0x73f80200 0x0200>; |
143 | interrupts = <14>; | 146 | interrupts = <14>; |
144 | status = "disabled"; | 147 | status = "disabled"; |
145 | }; | 148 | }; |
146 | 149 | ||
147 | usb@73f80400 { | 150 | usbh2: usb@73f80400 { |
148 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; | 151 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
149 | reg = <0x73f80400 0x0200>; | 152 | reg = <0x73f80400 0x0200>; |
150 | interrupts = <16>; | 153 | interrupts = <16>; |
151 | status = "disabled"; | 154 | status = "disabled"; |
152 | }; | 155 | }; |
153 | 156 | ||
154 | usb@73f80600 { | 157 | usbh3: usb@73f80600 { |
155 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; | 158 | compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
156 | reg = <0x73f80600 0x0200>; | 159 | reg = <0x73f80600 0x0200>; |
157 | interrupts = <17>; | 160 | interrupts = <17>; |
@@ -198,20 +201,20 @@ | |||
198 | #interrupt-cells = <2>; | 201 | #interrupt-cells = <2>; |
199 | }; | 202 | }; |
200 | 203 | ||
201 | wdog@73f98000 { /* WDOG1 */ | 204 | wdog1: wdog@73f98000 { |
202 | compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; | 205 | compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; |
203 | reg = <0x73f98000 0x4000>; | 206 | reg = <0x73f98000 0x4000>; |
204 | interrupts = <58>; | 207 | interrupts = <58>; |
205 | }; | 208 | }; |
206 | 209 | ||
207 | wdog@73f9c000 { /* WDOG2 */ | 210 | wdog2: wdog@73f9c000 { |
208 | compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; | 211 | compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; |
209 | reg = <0x73f9c000 0x4000>; | 212 | reg = <0x73f9c000 0x4000>; |
210 | interrupts = <59>; | 213 | interrupts = <59>; |
211 | status = "disabled"; | 214 | status = "disabled"; |
212 | }; | 215 | }; |
213 | 216 | ||
214 | iomuxc@73fa8000 { | 217 | iomuxc: iomuxc@73fa8000 { |
215 | compatible = "fsl,imx51-iomuxc"; | 218 | compatible = "fsl,imx51-iomuxc"; |
216 | reg = <0x73fa8000 0x4000>; | 219 | reg = <0x73fa8000 0x4000>; |
217 | 220 | ||
@@ -349,7 +352,7 @@ | |||
349 | reg = <0x80000000 0x10000000>; | 352 | reg = <0x80000000 0x10000000>; |
350 | ranges; | 353 | ranges; |
351 | 354 | ||
352 | ecspi@83fac000 { /* ECSPI2 */ | 355 | ecspi2: ecspi@83fac000 { |
353 | #address-cells = <1>; | 356 | #address-cells = <1>; |
354 | #size-cells = <0>; | 357 | #size-cells = <0>; |
355 | compatible = "fsl,imx51-ecspi"; | 358 | compatible = "fsl,imx51-ecspi"; |
@@ -358,14 +361,14 @@ | |||
358 | status = "disabled"; | 361 | status = "disabled"; |
359 | }; | 362 | }; |
360 | 363 | ||
361 | sdma@83fb0000 { | 364 | sdma: sdma@83fb0000 { |
362 | compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; | 365 | compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; |
363 | reg = <0x83fb0000 0x4000>; | 366 | reg = <0x83fb0000 0x4000>; |
364 | interrupts = <6>; | 367 | interrupts = <6>; |
365 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin"; | 368 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin"; |
366 | }; | 369 | }; |
367 | 370 | ||
368 | cspi@83fc0000 { | 371 | cspi: cspi@83fc0000 { |
369 | #address-cells = <1>; | 372 | #address-cells = <1>; |
370 | #size-cells = <0>; | 373 | #size-cells = <0>; |
371 | compatible = "fsl,imx51-cspi", "fsl,imx35-cspi"; | 374 | compatible = "fsl,imx51-cspi", "fsl,imx35-cspi"; |
@@ -374,7 +377,7 @@ | |||
374 | status = "disabled"; | 377 | status = "disabled"; |
375 | }; | 378 | }; |
376 | 379 | ||
377 | i2c@83fc4000 { /* I2C2 */ | 380 | i2c2: i2c@83fc4000 { |
378 | #address-cells = <1>; | 381 | #address-cells = <1>; |
379 | #size-cells = <0>; | 382 | #size-cells = <0>; |
380 | compatible = "fsl,imx51-i2c", "fsl,imx21-i2c"; | 383 | compatible = "fsl,imx51-i2c", "fsl,imx21-i2c"; |
@@ -383,7 +386,7 @@ | |||
383 | status = "disabled"; | 386 | status = "disabled"; |
384 | }; | 387 | }; |
385 | 388 | ||
386 | i2c@83fc8000 { /* I2C1 */ | 389 | i2c1: i2c@83fc8000 { |
387 | #address-cells = <1>; | 390 | #address-cells = <1>; |
388 | #size-cells = <0>; | 391 | #size-cells = <0>; |
389 | compatible = "fsl,imx51-i2c", "fsl,imx21-i2c"; | 392 | compatible = "fsl,imx51-i2c", "fsl,imx21-i2c"; |
@@ -401,13 +404,13 @@ | |||
401 | status = "disabled"; | 404 | status = "disabled"; |
402 | }; | 405 | }; |
403 | 406 | ||
404 | audmux@83fd0000 { | 407 | audmux: audmux@83fd0000 { |
405 | compatible = "fsl,imx51-audmux", "fsl,imx31-audmux"; | 408 | compatible = "fsl,imx51-audmux", "fsl,imx31-audmux"; |
406 | reg = <0x83fd0000 0x4000>; | 409 | reg = <0x83fd0000 0x4000>; |
407 | status = "disabled"; | 410 | status = "disabled"; |
408 | }; | 411 | }; |
409 | 412 | ||
410 | nand@83fdb000 { | 413 | nfc: nand@83fdb000 { |
411 | compatible = "fsl,imx51-nand"; | 414 | compatible = "fsl,imx51-nand"; |
412 | reg = <0x83fdb000 0x1000 0xcfff0000 0x10000>; | 415 | reg = <0x83fdb000 0x1000 0xcfff0000 0x10000>; |
413 | interrupts = <8>; | 416 | interrupts = <8>; |
@@ -423,7 +426,7 @@ | |||
423 | status = "disabled"; | 426 | status = "disabled"; |
424 | }; | 427 | }; |
425 | 428 | ||
426 | ethernet@83fec000 { | 429 | fec: ethernet@83fec000 { |
427 | compatible = "fsl,imx51-fec", "fsl,imx27-fec"; | 430 | compatible = "fsl,imx51-fec", "fsl,imx27-fec"; |
428 | reg = <0x83fec000 0x4000>; | 431 | reg = <0x83fec000 0x4000>; |
429 | interrupts = <87>; | 432 | interrupts = <87>; |
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts index 08948af86d1a..b0075537195b 100644 --- a/arch/arm/boot/dts/imx53-qsb.dts +++ b/arch/arm/boot/dts/imx53-qsb.dts | |||
@@ -60,10 +60,17 @@ | |||
60 | 697 0x80000000 /* MX53_PAD_EIM_DA12__GPIO3_12 */ | 60 | 697 0x80000000 /* MX53_PAD_EIM_DA12__GPIO3_12 */ |
61 | 701 0x80000000 /* MX53_PAD_EIM_DA13__GPIO3_13 */ | 61 | 701 0x80000000 /* MX53_PAD_EIM_DA13__GPIO3_13 */ |
62 | 868 0x80000000 /* MX53_PAD_PATA_DA_0__GPIO7_6 */ | 62 | 868 0x80000000 /* MX53_PAD_PATA_DA_0__GPIO7_6 */ |
63 | 1149 0x80000000 /* MX53_PAD_GPIO_16__GPIO7_11 */ | ||
64 | >; | ||
65 | }; | ||
66 | |||
67 | led_pin_gpio7_7: led_gpio7_7@0 { | ||
68 | fsl,pins = < | ||
63 | 873 0x80000000 /* MX53_PAD_PATA_DA_1__GPIO7_7 */ | 69 | 873 0x80000000 /* MX53_PAD_PATA_DA_1__GPIO7_7 */ |
64 | >; | 70 | >; |
65 | }; | 71 | }; |
66 | }; | 72 | }; |
73 | |||
67 | }; | 74 | }; |
68 | 75 | ||
69 | uart1: serial@53fbc000 { | 76 | uart1: serial@53fbc000 { |
@@ -100,76 +107,93 @@ | |||
100 | pmic: dialog@48 { | 107 | pmic: dialog@48 { |
101 | compatible = "dlg,da9053-aa", "dlg,da9052"; | 108 | compatible = "dlg,da9053-aa", "dlg,da9052"; |
102 | reg = <0x48>; | 109 | reg = <0x48>; |
110 | interrupt-parent = <&gpio7>; | ||
111 | interrupts = <11 0x8>; /* low-level active IRQ at GPIO7_11 */ | ||
103 | 112 | ||
104 | regulators { | 113 | regulators { |
105 | buck0 { | 114 | buck1_reg: buck1 { |
106 | regulator-min-microvolt = <500000>; | 115 | regulator-min-microvolt = <500000>; |
107 | regulator-max-microvolt = <2075000>; | 116 | regulator-max-microvolt = <2075000>; |
117 | regulator-always-on; | ||
108 | }; | 118 | }; |
109 | 119 | ||
110 | buck1 { | 120 | buck2_reg: buck2 { |
111 | regulator-min-microvolt = <500000>; | 121 | regulator-min-microvolt = <500000>; |
112 | regulator-max-microvolt = <2075000>; | 122 | regulator-max-microvolt = <2075000>; |
123 | regulator-always-on; | ||
113 | }; | 124 | }; |
114 | 125 | ||
115 | buck2 { | 126 | buck3_reg: buck3 { |
116 | regulator-min-microvolt = <925000>; | 127 | regulator-min-microvolt = <925000>; |
117 | regulator-max-microvolt = <2500000>; | 128 | regulator-max-microvolt = <2500000>; |
129 | regulator-always-on; | ||
118 | }; | 130 | }; |
119 | 131 | ||
120 | buck3 { | 132 | buck4_reg: buck4 { |
121 | regulator-min-microvolt = <925000>; | 133 | regulator-min-microvolt = <925000>; |
122 | regulator-max-microvolt = <2500000>; | 134 | regulator-max-microvolt = <2500000>; |
135 | regulator-always-on; | ||
123 | }; | 136 | }; |
124 | 137 | ||
125 | ldo4 { | 138 | ldo1_reg: ldo1 { |
126 | regulator-min-microvolt = <600000>; | 139 | regulator-min-microvolt = <600000>; |
127 | regulator-max-microvolt = <1800000>; | 140 | regulator-max-microvolt = <1800000>; |
141 | regulator-boot-on; | ||
142 | regulator-always-on; | ||
128 | }; | 143 | }; |
129 | 144 | ||
130 | ldo5 { | 145 | ldo2_reg: ldo2 { |
146 | regulator-min-microvolt = <600000>; | ||
147 | regulator-max-microvolt = <1800000>; | ||
148 | regulator-always-on; | ||
149 | }; | ||
150 | |||
151 | ldo3_reg: ldo3 { | ||
131 | regulator-min-microvolt = <600000>; | 152 | regulator-min-microvolt = <600000>; |
132 | regulator-max-microvolt = <1800000>; | 153 | regulator-max-microvolt = <1800000>; |
154 | regulator-always-on; | ||
133 | }; | 155 | }; |
134 | 156 | ||
135 | ldo6 { | 157 | ldo4_reg: ldo4 { |
136 | regulator-min-microvolt = <1725000>; | 158 | regulator-min-microvolt = <1725000>; |
137 | regulator-max-microvolt = <3300000>; | 159 | regulator-max-microvolt = <3300000>; |
160 | regulator-always-on; | ||
138 | }; | 161 | }; |
139 | 162 | ||
140 | ldo7 { | 163 | ldo5_reg: ldo5 { |
141 | regulator-min-microvolt = <1725000>; | 164 | regulator-min-microvolt = <1725000>; |
142 | regulator-max-microvolt = <3300000>; | 165 | regulator-max-microvolt = <3300000>; |
166 | regulator-always-on; | ||
143 | }; | 167 | }; |
144 | 168 | ||
145 | ldo8 { | 169 | ldo6_reg: ldo6 { |
146 | regulator-min-microvolt = <1200000>; | 170 | regulator-min-microvolt = <1200000>; |
147 | regulator-max-microvolt = <3600000>; | 171 | regulator-max-microvolt = <3600000>; |
172 | regulator-always-on; | ||
148 | }; | 173 | }; |
149 | 174 | ||
150 | ldo9 { | 175 | ldo7_reg: ldo7 { |
151 | regulator-min-microvolt = <1200000>; | 176 | regulator-min-microvolt = <1200000>; |
152 | regulator-max-microvolt = <3600000>; | 177 | regulator-max-microvolt = <3600000>; |
178 | regulator-always-on; | ||
153 | }; | 179 | }; |
154 | 180 | ||
155 | ldo10 { | 181 | ldo8_reg: ldo8 { |
156 | regulator-min-microvolt = <1200000>; | 182 | regulator-min-microvolt = <1200000>; |
157 | regulator-max-microvolt = <3600000>; | 183 | regulator-max-microvolt = <3600000>; |
184 | regulator-always-on; | ||
158 | }; | 185 | }; |
159 | 186 | ||
160 | ldo11 { | 187 | ldo9_reg: ldo9 { |
161 | regulator-min-microvolt = <1200000>; | 188 | regulator-min-microvolt = <1200000>; |
162 | regulator-max-microvolt = <3600000>; | 189 | regulator-max-microvolt = <3600000>; |
190 | regulator-always-on; | ||
163 | }; | 191 | }; |
164 | 192 | ||
165 | ldo12 { | 193 | ldo10_reg: ldo10 { |
166 | regulator-min-microvolt = <1250000>; | 194 | regulator-min-microvolt = <1250000>; |
167 | regulator-max-microvolt = <3650000>; | 195 | regulator-max-microvolt = <3650000>; |
168 | }; | 196 | regulator-always-on; |
169 | |||
170 | ldo13 { | ||
171 | regulator-min-microvolt = <1200000>; | ||
172 | regulator-max-microvolt = <3600000>; | ||
173 | }; | 197 | }; |
174 | }; | 198 | }; |
175 | }; | 199 | }; |
@@ -216,6 +240,8 @@ | |||
216 | 240 | ||
217 | leds { | 241 | leds { |
218 | compatible = "gpio-leds"; | 242 | compatible = "gpio-leds"; |
243 | pinctrl-names = "default"; | ||
244 | pinctrl-0 = <&led_pin_gpio7_7>; | ||
219 | 245 | ||
220 | user { | 246 | user { |
221 | label = "Heartbeat"; | 247 | label = "Heartbeat"; |
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi index caf09ff73f10..f45d4b1e21b5 100644 --- a/arch/arm/boot/dts/imx53.dtsi +++ b/arch/arm/boot/dts/imx53.dtsi | |||
@@ -81,17 +81,19 @@ | |||
81 | reg = <0x50000000 0x40000>; | 81 | reg = <0x50000000 0x40000>; |
82 | ranges; | 82 | ranges; |
83 | 83 | ||
84 | esdhc@50004000 { /* ESDHC1 */ | 84 | esdhc1: esdhc@50004000 { |
85 | compatible = "fsl,imx53-esdhc"; | 85 | compatible = "fsl,imx53-esdhc"; |
86 | reg = <0x50004000 0x4000>; | 86 | reg = <0x50004000 0x4000>; |
87 | interrupts = <1>; | 87 | interrupts = <1>; |
88 | bus-width = <4>; | ||
88 | status = "disabled"; | 89 | status = "disabled"; |
89 | }; | 90 | }; |
90 | 91 | ||
91 | esdhc@50008000 { /* ESDHC2 */ | 92 | esdhc2: esdhc@50008000 { |
92 | compatible = "fsl,imx53-esdhc"; | 93 | compatible = "fsl,imx53-esdhc"; |
93 | reg = <0x50008000 0x4000>; | 94 | reg = <0x50008000 0x4000>; |
94 | interrupts = <2>; | 95 | interrupts = <2>; |
96 | bus-width = <4>; | ||
95 | status = "disabled"; | 97 | status = "disabled"; |
96 | }; | 98 | }; |
97 | 99 | ||
@@ -102,7 +104,7 @@ | |||
102 | status = "disabled"; | 104 | status = "disabled"; |
103 | }; | 105 | }; |
104 | 106 | ||
105 | ecspi@50010000 { /* ECSPI1 */ | 107 | ecspi1: ecspi@50010000 { |
106 | #address-cells = <1>; | 108 | #address-cells = <1>; |
107 | #size-cells = <0>; | 109 | #size-cells = <0>; |
108 | compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi"; | 110 | compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi"; |
@@ -120,43 +122,45 @@ | |||
120 | status = "disabled"; | 122 | status = "disabled"; |
121 | }; | 123 | }; |
122 | 124 | ||
123 | esdhc@50020000 { /* ESDHC3 */ | 125 | esdhc3: esdhc@50020000 { |
124 | compatible = "fsl,imx53-esdhc"; | 126 | compatible = "fsl,imx53-esdhc"; |
125 | reg = <0x50020000 0x4000>; | 127 | reg = <0x50020000 0x4000>; |
126 | interrupts = <3>; | 128 | interrupts = <3>; |
129 | bus-width = <4>; | ||
127 | status = "disabled"; | 130 | status = "disabled"; |
128 | }; | 131 | }; |
129 | 132 | ||
130 | esdhc@50024000 { /* ESDHC4 */ | 133 | esdhc4: esdhc@50024000 { |
131 | compatible = "fsl,imx53-esdhc"; | 134 | compatible = "fsl,imx53-esdhc"; |
132 | reg = <0x50024000 0x4000>; | 135 | reg = <0x50024000 0x4000>; |
133 | interrupts = <4>; | 136 | interrupts = <4>; |
137 | bus-width = <4>; | ||
134 | status = "disabled"; | 138 | status = "disabled"; |
135 | }; | 139 | }; |
136 | }; | 140 | }; |
137 | 141 | ||
138 | usb@53f80000 { | 142 | usbotg: usb@53f80000 { |
139 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; | 143 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; |
140 | reg = <0x53f80000 0x0200>; | 144 | reg = <0x53f80000 0x0200>; |
141 | interrupts = <18>; | 145 | interrupts = <18>; |
142 | status = "disabled"; | 146 | status = "disabled"; |
143 | }; | 147 | }; |
144 | 148 | ||
145 | usb@53f80200 { | 149 | usbh1: usb@53f80200 { |
146 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; | 150 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; |
147 | reg = <0x53f80200 0x0200>; | 151 | reg = <0x53f80200 0x0200>; |
148 | interrupts = <14>; | 152 | interrupts = <14>; |
149 | status = "disabled"; | 153 | status = "disabled"; |
150 | }; | 154 | }; |
151 | 155 | ||
152 | usb@53f80400 { | 156 | usbh2: usb@53f80400 { |
153 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; | 157 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; |
154 | reg = <0x53f80400 0x0200>; | 158 | reg = <0x53f80400 0x0200>; |
155 | interrupts = <16>; | 159 | interrupts = <16>; |
156 | status = "disabled"; | 160 | status = "disabled"; |
157 | }; | 161 | }; |
158 | 162 | ||
159 | usb@53f80600 { | 163 | usbh3: usb@53f80600 { |
160 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; | 164 | compatible = "fsl,imx53-usb", "fsl,imx27-usb"; |
161 | reg = <0x53f80600 0x0200>; | 165 | reg = <0x53f80600 0x0200>; |
162 | interrupts = <17>; | 166 | interrupts = <17>; |
@@ -203,20 +207,20 @@ | |||
203 | #interrupt-cells = <2>; | 207 | #interrupt-cells = <2>; |
204 | }; | 208 | }; |
205 | 209 | ||
206 | wdog@53f98000 { /* WDOG1 */ | 210 | wdog1: wdog@53f98000 { |
207 | compatible = "fsl,imx53-wdt", "fsl,imx21-wdt"; | 211 | compatible = "fsl,imx53-wdt", "fsl,imx21-wdt"; |
208 | reg = <0x53f98000 0x4000>; | 212 | reg = <0x53f98000 0x4000>; |
209 | interrupts = <58>; | 213 | interrupts = <58>; |
210 | }; | 214 | }; |
211 | 215 | ||
212 | wdog@53f9c000 { /* WDOG2 */ | 216 | wdog2: wdog@53f9c000 { |
213 | compatible = "fsl,imx53-wdt", "fsl,imx21-wdt"; | 217 | compatible = "fsl,imx53-wdt", "fsl,imx21-wdt"; |
214 | reg = <0x53f9c000 0x4000>; | 218 | reg = <0x53f9c000 0x4000>; |
215 | interrupts = <59>; | 219 | interrupts = <59>; |
216 | status = "disabled"; | 220 | status = "disabled"; |
217 | }; | 221 | }; |
218 | 222 | ||
219 | iomuxc@53fa8000 { | 223 | iomuxc: iomuxc@53fa8000 { |
220 | compatible = "fsl,imx53-iomuxc"; | 224 | compatible = "fsl,imx53-iomuxc"; |
221 | reg = <0x53fa8000 0x4000>; | 225 | reg = <0x53fa8000 0x4000>; |
222 | 226 | ||
@@ -316,6 +320,24 @@ | |||
316 | }; | 320 | }; |
317 | }; | 321 | }; |
318 | 322 | ||
323 | can1 { | ||
324 | pinctrl_can1_1: can1grp-1 { | ||
325 | fsl,pins = < | ||
326 | 847 0x80000000 /* MX53_PAD_PATA_INTRQ__CAN1_TXCAN */ | ||
327 | 853 0x80000000 /* MX53_PAD_PATA_DIOR__CAN1_RXCAN */ | ||
328 | >; | ||
329 | }; | ||
330 | }; | ||
331 | |||
332 | can2 { | ||
333 | pinctrl_can2_1: can2grp-1 { | ||
334 | fsl,pins = < | ||
335 | 67 0x80000000 /* MX53_PAD_KEY_COL4__CAN2_TXCAN */ | ||
336 | 74 0x80000000 /* MX53_PAD_KEY_ROW4__CAN2_RXCAN */ | ||
337 | >; | ||
338 | }; | ||
339 | }; | ||
340 | |||
319 | i2c1 { | 341 | i2c1 { |
320 | pinctrl_i2c1_1: i2c1grp-1 { | 342 | pinctrl_i2c1_1: i2c1grp-1 { |
321 | fsl,pins = < | 343 | fsl,pins = < |
@@ -334,6 +356,15 @@ | |||
334 | }; | 356 | }; |
335 | }; | 357 | }; |
336 | 358 | ||
359 | i2c3 { | ||
360 | pinctrl_i2c3_1: i2c3grp-1 { | ||
361 | fsl,pins = < | ||
362 | 1102 0xc0000000 /* MX53_PAD_GPIO_6__I2C3_SDA */ | ||
363 | 1130 0xc0000000 /* MX53_PAD_GPIO_5__I2C3_SCL */ | ||
364 | >; | ||
365 | }; | ||
366 | }; | ||
367 | |||
337 | uart1 { | 368 | uart1 { |
338 | pinctrl_uart1_1: uart1grp-1 { | 369 | pinctrl_uart1_1: uart1grp-1 { |
339 | fsl,pins = < | 370 | fsl,pins = < |
@@ -369,6 +400,25 @@ | |||
369 | >; | 400 | >; |
370 | }; | 401 | }; |
371 | }; | 402 | }; |
403 | |||
404 | uart4 { | ||
405 | pinctrl_uart4_1: uart4grp-1 { | ||
406 | fsl,pins = < | ||
407 | 11 0x1c5 /* MX53_PAD_KEY_COL0__UART4_TXD_MUX */ | ||
408 | 18 0x1c5 /* MX53_PAD_KEY_ROW0__UART4_RXD_MUX */ | ||
409 | >; | ||
410 | }; | ||
411 | }; | ||
412 | |||
413 | uart5 { | ||
414 | pinctrl_uart5_1: uart5grp-1 { | ||
415 | fsl,pins = < | ||
416 | 24 0x1c5 /* MX53_PAD_KEY_COL1__UART5_TXD_MUX */ | ||
417 | 31 0x1c5 /* MX53_PAD_KEY_ROW1__UART5_RXD_MUX */ | ||
418 | >; | ||
419 | }; | ||
420 | }; | ||
421 | |||
372 | }; | 422 | }; |
373 | 423 | ||
374 | uart1: serial@53fbc000 { | 424 | uart1: serial@53fbc000 { |
@@ -429,7 +479,7 @@ | |||
429 | #interrupt-cells = <2>; | 479 | #interrupt-cells = <2>; |
430 | }; | 480 | }; |
431 | 481 | ||
432 | i2c@53fec000 { /* I2C3 */ | 482 | i2c3: i2c@53fec000 { |
433 | #address-cells = <1>; | 483 | #address-cells = <1>; |
434 | #size-cells = <0>; | 484 | #size-cells = <0>; |
435 | compatible = "fsl,imx53-i2c", "fsl,imx21-i2c"; | 485 | compatible = "fsl,imx53-i2c", "fsl,imx21-i2c"; |
@@ -460,7 +510,7 @@ | |||
460 | status = "disabled"; | 510 | status = "disabled"; |
461 | }; | 511 | }; |
462 | 512 | ||
463 | ecspi@63fac000 { /* ECSPI2 */ | 513 | ecspi2: ecspi@63fac000 { |
464 | #address-cells = <1>; | 514 | #address-cells = <1>; |
465 | #size-cells = <0>; | 515 | #size-cells = <0>; |
466 | compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi"; | 516 | compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi"; |
@@ -469,14 +519,14 @@ | |||
469 | status = "disabled"; | 519 | status = "disabled"; |
470 | }; | 520 | }; |
471 | 521 | ||
472 | sdma@63fb0000 { | 522 | sdma: sdma@63fb0000 { |
473 | compatible = "fsl,imx53-sdma", "fsl,imx35-sdma"; | 523 | compatible = "fsl,imx53-sdma", "fsl,imx35-sdma"; |
474 | reg = <0x63fb0000 0x4000>; | 524 | reg = <0x63fb0000 0x4000>; |
475 | interrupts = <6>; | 525 | interrupts = <6>; |
476 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin"; | 526 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin"; |
477 | }; | 527 | }; |
478 | 528 | ||
479 | cspi@63fc0000 { | 529 | cspi: cspi@63fc0000 { |
480 | #address-cells = <1>; | 530 | #address-cells = <1>; |
481 | #size-cells = <0>; | 531 | #size-cells = <0>; |
482 | compatible = "fsl,imx53-cspi", "fsl,imx35-cspi"; | 532 | compatible = "fsl,imx53-cspi", "fsl,imx35-cspi"; |
@@ -485,7 +535,7 @@ | |||
485 | status = "disabled"; | 535 | status = "disabled"; |
486 | }; | 536 | }; |
487 | 537 | ||
488 | i2c@63fc4000 { /* I2C2 */ | 538 | i2c2: i2c@63fc4000 { |
489 | #address-cells = <1>; | 539 | #address-cells = <1>; |
490 | #size-cells = <0>; | 540 | #size-cells = <0>; |
491 | compatible = "fsl,imx53-i2c", "fsl,imx21-i2c"; | 541 | compatible = "fsl,imx53-i2c", "fsl,imx21-i2c"; |
@@ -494,7 +544,7 @@ | |||
494 | status = "disabled"; | 544 | status = "disabled"; |
495 | }; | 545 | }; |
496 | 546 | ||
497 | i2c@63fc8000 { /* I2C1 */ | 547 | i2c1: i2c@63fc8000 { |
498 | #address-cells = <1>; | 548 | #address-cells = <1>; |
499 | #size-cells = <0>; | 549 | #size-cells = <0>; |
500 | compatible = "fsl,imx53-i2c", "fsl,imx21-i2c"; | 550 | compatible = "fsl,imx53-i2c", "fsl,imx21-i2c"; |
@@ -512,13 +562,13 @@ | |||
512 | status = "disabled"; | 562 | status = "disabled"; |
513 | }; | 563 | }; |
514 | 564 | ||
515 | audmux@63fd0000 { | 565 | audmux: audmux@63fd0000 { |
516 | compatible = "fsl,imx53-audmux", "fsl,imx31-audmux"; | 566 | compatible = "fsl,imx53-audmux", "fsl,imx31-audmux"; |
517 | reg = <0x63fd0000 0x4000>; | 567 | reg = <0x63fd0000 0x4000>; |
518 | status = "disabled"; | 568 | status = "disabled"; |
519 | }; | 569 | }; |
520 | 570 | ||
521 | nand@63fdb000 { | 571 | nfc: nand@63fdb000 { |
522 | compatible = "fsl,imx53-nand"; | 572 | compatible = "fsl,imx53-nand"; |
523 | reg = <0x63fdb000 0x1000 0xf7ff0000 0x10000>; | 573 | reg = <0x63fdb000 0x1000 0xf7ff0000 0x10000>; |
524 | interrupts = <8>; | 574 | interrupts = <8>; |
@@ -534,7 +584,7 @@ | |||
534 | status = "disabled"; | 584 | status = "disabled"; |
535 | }; | 585 | }; |
536 | 586 | ||
537 | ethernet@63fec000 { | 587 | fec: ethernet@63fec000 { |
538 | compatible = "fsl,imx53-fec", "fsl,imx25-fec"; | 588 | compatible = "fsl,imx53-fec", "fsl,imx25-fec"; |
539 | reg = <0x63fec000 0x4000>; | 589 | reg = <0x63fec000 0x4000>; |
540 | interrupts = <87>; | 590 | interrupts = <87>; |
diff --git a/arch/arm/boot/dts/imx6q-sabreauto.dts b/arch/arm/boot/dts/imx6q-sabreauto.dts new file mode 100644 index 000000000000..826e4ad1477e --- /dev/null +++ b/arch/arm/boot/dts/imx6q-sabreauto.dts | |||
@@ -0,0 +1,64 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Freescale Semiconductor, Inc. | ||
3 | * Copyright 2011 Linaro Ltd. | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | /include/ "imx6q.dtsi" | ||
15 | |||
16 | / { | ||
17 | model = "Freescale i.MX6 Quad SABRE Automotive Board"; | ||
18 | compatible = "fsl,imx6q-sabreauto", "fsl,imx6q"; | ||
19 | |||
20 | memory { | ||
21 | reg = <0x10000000 0x80000000>; | ||
22 | }; | ||
23 | |||
24 | soc { | ||
25 | aips-bus@02000000 { /* AIPS1 */ | ||
26 | iomuxc@020e0000 { | ||
27 | pinctrl-names = "default"; | ||
28 | pinctrl-0 = <&pinctrl_hog>; | ||
29 | |||
30 | hog { | ||
31 | pinctrl_hog: hoggrp { | ||
32 | fsl,pins = < | ||
33 | 1376 0x80000000 /* MX6Q_PAD_NANDF_CS2__GPIO_6_15 */ | ||
34 | 13 0x80000000 /* MX6Q_PAD_SD2_DAT2__GPIO_1_13 */ | ||
35 | >; | ||
36 | }; | ||
37 | }; | ||
38 | }; | ||
39 | }; | ||
40 | |||
41 | aips-bus@02100000 { /* AIPS2 */ | ||
42 | uart4: serial@021f0000 { | ||
43 | pinctrl-names = "default"; | ||
44 | pinctrl-0 = <&pinctrl_uart4_1>; | ||
45 | status = "okay"; | ||
46 | }; | ||
47 | |||
48 | ethernet@02188000 { | ||
49 | pinctrl-names = "default"; | ||
50 | pinctrl-0 = <&pinctrl_enet_2>; | ||
51 | phy-mode = "rgmii"; | ||
52 | status = "okay"; | ||
53 | }; | ||
54 | |||
55 | usdhc@02198000 { /* uSDHC3 */ | ||
56 | pinctrl-names = "default"; | ||
57 | pinctrl-0 = <&pinctrl_usdhc3_1>; | ||
58 | cd-gpios = <&gpio6 15 0>; | ||
59 | wp-gpios = <&gpio1 13 0>; | ||
60 | status = "okay"; | ||
61 | }; | ||
62 | }; | ||
63 | }; | ||
64 | }; | ||
diff --git a/arch/arm/boot/dts/imx6q-sabresd.dts b/arch/arm/boot/dts/imx6q-sabresd.dts index e596c28c214d..a42402562b7b 100644 --- a/arch/arm/boot/dts/imx6q-sabresd.dts +++ b/arch/arm/boot/dts/imx6q-sabresd.dts | |||
@@ -38,6 +38,8 @@ | |||
38 | hog { | 38 | hog { |
39 | pinctrl_hog: hoggrp { | 39 | pinctrl_hog: hoggrp { |
40 | fsl,pins = < | 40 | fsl,pins = < |
41 | 1004 0x80000000 /* MX6Q_PAD_GPIO_4__GPIO_1_4 */ | ||
42 | 1012 0x80000000 /* MX6Q_PAD_GPIO_5__GPIO_1_5 */ | ||
41 | 1402 0x80000000 /* MX6Q_PAD_NANDF_D0__GPIO_2_0 */ | 43 | 1402 0x80000000 /* MX6Q_PAD_NANDF_D0__GPIO_2_0 */ |
42 | 1410 0x80000000 /* MX6Q_PAD_NANDF_D1__GPIO_2_1 */ | 44 | 1410 0x80000000 /* MX6Q_PAD_NANDF_D1__GPIO_2_1 */ |
43 | 1418 0x80000000 /* MX6Q_PAD_NANDF_D2__GPIO_2_2 */ | 45 | 1418 0x80000000 /* MX6Q_PAD_NANDF_D2__GPIO_2_2 */ |
@@ -73,4 +75,20 @@ | |||
73 | }; | 75 | }; |
74 | }; | 76 | }; |
75 | }; | 77 | }; |
78 | |||
79 | gpio-keys { | ||
80 | compatible = "gpio-keys"; | ||
81 | |||
82 | volume-up { | ||
83 | label = "Volume Up"; | ||
84 | gpios = <&gpio1 4 0>; | ||
85 | linux,code = <115>; /* KEY_VOLUMEUP */ | ||
86 | }; | ||
87 | |||
88 | volume-down { | ||
89 | label = "Volume Down"; | ||
90 | gpios = <&gpio1 5 0>; | ||
91 | linux,code = <114>; /* KEY_VOLUMEDOWN */ | ||
92 | }; | ||
93 | }; | ||
76 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index f604a44a5c66..6dfeaedef307 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi | |||
@@ -36,6 +36,14 @@ | |||
36 | compatible = "arm,cortex-a9"; | 36 | compatible = "arm,cortex-a9"; |
37 | reg = <0>; | 37 | reg = <0>; |
38 | next-level-cache = <&L2>; | 38 | next-level-cache = <&L2>; |
39 | operating-points = < | ||
40 | /* kHz uV */ | ||
41 | 792000 1100000 | ||
42 | 396000 950000 | ||
43 | 198000 850000 | ||
44 | >; | ||
45 | clock-latency = <61036>; /* two CLK32 periods */ | ||
46 | cpu0-supply = <®_cpu>; | ||
39 | }; | 47 | }; |
40 | 48 | ||
41 | cpu@1 { | 49 | cpu@1 { |
@@ -100,7 +108,7 @@ | |||
100 | clocks = <&clks 106>; | 108 | clocks = <&clks 106>; |
101 | }; | 109 | }; |
102 | 110 | ||
103 | gpmi-nand@00112000 { | 111 | nfc: gpmi-nand@00112000 { |
104 | compatible = "fsl,imx6q-gpmi-nand"; | 112 | compatible = "fsl,imx6q-gpmi-nand"; |
105 | #address-cells = <1>; | 113 | #address-cells = <1>; |
106 | #size-cells = <1>; | 114 | #size-cells = <1>; |
@@ -144,12 +152,12 @@ | |||
144 | reg = <0x02000000 0x40000>; | 152 | reg = <0x02000000 0x40000>; |
145 | ranges; | 153 | ranges; |
146 | 154 | ||
147 | spdif@02004000 { | 155 | spdif: spdif@02004000 { |
148 | reg = <0x02004000 0x4000>; | 156 | reg = <0x02004000 0x4000>; |
149 | interrupts = <0 52 0x04>; | 157 | interrupts = <0 52 0x04>; |
150 | }; | 158 | }; |
151 | 159 | ||
152 | ecspi@02008000 { /* eCSPI1 */ | 160 | ecspi1: ecspi@02008000 { |
153 | #address-cells = <1>; | 161 | #address-cells = <1>; |
154 | #size-cells = <0>; | 162 | #size-cells = <0>; |
155 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 163 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
@@ -160,7 +168,7 @@ | |||
160 | status = "disabled"; | 168 | status = "disabled"; |
161 | }; | 169 | }; |
162 | 170 | ||
163 | ecspi@0200c000 { /* eCSPI2 */ | 171 | ecspi2: ecspi@0200c000 { |
164 | #address-cells = <1>; | 172 | #address-cells = <1>; |
165 | #size-cells = <0>; | 173 | #size-cells = <0>; |
166 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 174 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
@@ -171,7 +179,7 @@ | |||
171 | status = "disabled"; | 179 | status = "disabled"; |
172 | }; | 180 | }; |
173 | 181 | ||
174 | ecspi@02010000 { /* eCSPI3 */ | 182 | ecspi3: ecspi@02010000 { |
175 | #address-cells = <1>; | 183 | #address-cells = <1>; |
176 | #size-cells = <0>; | 184 | #size-cells = <0>; |
177 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 185 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
@@ -182,7 +190,7 @@ | |||
182 | status = "disabled"; | 190 | status = "disabled"; |
183 | }; | 191 | }; |
184 | 192 | ||
185 | ecspi@02014000 { /* eCSPI4 */ | 193 | ecspi4: ecspi@02014000 { |
186 | #address-cells = <1>; | 194 | #address-cells = <1>; |
187 | #size-cells = <0>; | 195 | #size-cells = <0>; |
188 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 196 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
@@ -193,7 +201,7 @@ | |||
193 | status = "disabled"; | 201 | status = "disabled"; |
194 | }; | 202 | }; |
195 | 203 | ||
196 | ecspi@02018000 { /* eCSPI5 */ | 204 | ecspi5: ecspi@02018000 { |
197 | #address-cells = <1>; | 205 | #address-cells = <1>; |
198 | #size-cells = <0>; | 206 | #size-cells = <0>; |
199 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 207 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
@@ -213,7 +221,7 @@ | |||
213 | status = "disabled"; | 221 | status = "disabled"; |
214 | }; | 222 | }; |
215 | 223 | ||
216 | esai@02024000 { | 224 | esai: esai@02024000 { |
217 | reg = <0x02024000 0x4000>; | 225 | reg = <0x02024000 0x4000>; |
218 | interrupts = <0 51 0x04>; | 226 | interrupts = <0 51 0x04>; |
219 | }; | 227 | }; |
@@ -248,7 +256,7 @@ | |||
248 | status = "disabled"; | 256 | status = "disabled"; |
249 | }; | 257 | }; |
250 | 258 | ||
251 | asrc@02034000 { | 259 | asrc: asrc@02034000 { |
252 | reg = <0x02034000 0x4000>; | 260 | reg = <0x02034000 0x4000>; |
253 | interrupts = <0 50 0x04>; | 261 | interrupts = <0 50 0x04>; |
254 | }; | 262 | }; |
@@ -258,7 +266,7 @@ | |||
258 | }; | 266 | }; |
259 | }; | 267 | }; |
260 | 268 | ||
261 | vpu@02040000 { | 269 | vpu: vpu@02040000 { |
262 | reg = <0x02040000 0x3c000>; | 270 | reg = <0x02040000 0x3c000>; |
263 | interrupts = <0 3 0x04 0 12 0x04>; | 271 | interrupts = <0 3 0x04 0 12 0x04>; |
264 | }; | 272 | }; |
@@ -267,37 +275,37 @@ | |||
267 | reg = <0x0207c000 0x4000>; | 275 | reg = <0x0207c000 0x4000>; |
268 | }; | 276 | }; |
269 | 277 | ||
270 | pwm@02080000 { /* PWM1 */ | 278 | pwm1: pwm@02080000 { |
271 | reg = <0x02080000 0x4000>; | 279 | reg = <0x02080000 0x4000>; |
272 | interrupts = <0 83 0x04>; | 280 | interrupts = <0 83 0x04>; |
273 | }; | 281 | }; |
274 | 282 | ||
275 | pwm@02084000 { /* PWM2 */ | 283 | pwm2: pwm@02084000 { |
276 | reg = <0x02084000 0x4000>; | 284 | reg = <0x02084000 0x4000>; |
277 | interrupts = <0 84 0x04>; | 285 | interrupts = <0 84 0x04>; |
278 | }; | 286 | }; |
279 | 287 | ||
280 | pwm@02088000 { /* PWM3 */ | 288 | pwm3: pwm@02088000 { |
281 | reg = <0x02088000 0x4000>; | 289 | reg = <0x02088000 0x4000>; |
282 | interrupts = <0 85 0x04>; | 290 | interrupts = <0 85 0x04>; |
283 | }; | 291 | }; |
284 | 292 | ||
285 | pwm@0208c000 { /* PWM4 */ | 293 | pwm4: pwm@0208c000 { |
286 | reg = <0x0208c000 0x4000>; | 294 | reg = <0x0208c000 0x4000>; |
287 | interrupts = <0 86 0x04>; | 295 | interrupts = <0 86 0x04>; |
288 | }; | 296 | }; |
289 | 297 | ||
290 | flexcan@02090000 { /* CAN1 */ | 298 | can1: flexcan@02090000 { |
291 | reg = <0x02090000 0x4000>; | 299 | reg = <0x02090000 0x4000>; |
292 | interrupts = <0 110 0x04>; | 300 | interrupts = <0 110 0x04>; |
293 | }; | 301 | }; |
294 | 302 | ||
295 | flexcan@02094000 { /* CAN2 */ | 303 | can2: flexcan@02094000 { |
296 | reg = <0x02094000 0x4000>; | 304 | reg = <0x02094000 0x4000>; |
297 | interrupts = <0 111 0x04>; | 305 | interrupts = <0 111 0x04>; |
298 | }; | 306 | }; |
299 | 307 | ||
300 | gpt@02098000 { | 308 | gpt: gpt@02098000 { |
301 | compatible = "fsl,imx6q-gpt"; | 309 | compatible = "fsl,imx6q-gpt"; |
302 | reg = <0x02098000 0x4000>; | 310 | reg = <0x02098000 0x4000>; |
303 | interrupts = <0 55 0x04>; | 311 | interrupts = <0 55 0x04>; |
@@ -373,19 +381,19 @@ | |||
373 | #interrupt-cells = <2>; | 381 | #interrupt-cells = <2>; |
374 | }; | 382 | }; |
375 | 383 | ||
376 | kpp@020b8000 { | 384 | kpp: kpp@020b8000 { |
377 | reg = <0x020b8000 0x4000>; | 385 | reg = <0x020b8000 0x4000>; |
378 | interrupts = <0 82 0x04>; | 386 | interrupts = <0 82 0x04>; |
379 | }; | 387 | }; |
380 | 388 | ||
381 | wdog@020bc000 { /* WDOG1 */ | 389 | wdog1: wdog@020bc000 { |
382 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; | 390 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; |
383 | reg = <0x020bc000 0x4000>; | 391 | reg = <0x020bc000 0x4000>; |
384 | interrupts = <0 80 0x04>; | 392 | interrupts = <0 80 0x04>; |
385 | clocks = <&clks 0>; | 393 | clocks = <&clks 0>; |
386 | }; | 394 | }; |
387 | 395 | ||
388 | wdog@020c0000 { /* WDOG2 */ | 396 | wdog2: wdog@020c0000 { |
389 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; | 397 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; |
390 | reg = <0x020c0000 0x4000>; | 398 | reg = <0x020c0000 0x4000>; |
391 | interrupts = <0 81 0x04>; | 399 | interrupts = <0 81 0x04>; |
@@ -447,7 +455,7 @@ | |||
447 | anatop-max-voltage = <2750000>; | 455 | anatop-max-voltage = <2750000>; |
448 | }; | 456 | }; |
449 | 457 | ||
450 | regulator-vddcore@140 { | 458 | reg_cpu: regulator-vddcore@140 { |
451 | compatible = "fsl,anatop-regulator"; | 459 | compatible = "fsl,anatop-regulator"; |
452 | regulator-name = "cpu"; | 460 | regulator-name = "cpu"; |
453 | regulator-min-microvolt = <725000>; | 461 | regulator-min-microvolt = <725000>; |
@@ -505,27 +513,35 @@ | |||
505 | }; | 513 | }; |
506 | 514 | ||
507 | snvs@020cc000 { | 515 | snvs@020cc000 { |
508 | reg = <0x020cc000 0x4000>; | 516 | compatible = "fsl,sec-v4.0-mon", "simple-bus"; |
509 | interrupts = <0 19 0x04 0 20 0x04>; | 517 | #address-cells = <1>; |
518 | #size-cells = <1>; | ||
519 | ranges = <0 0x020cc000 0x4000>; | ||
520 | |||
521 | snvs-rtc-lp@34 { | ||
522 | compatible = "fsl,sec-v4.0-mon-rtc-lp"; | ||
523 | reg = <0x34 0x58>; | ||
524 | interrupts = <0 19 0x04 0 20 0x04>; | ||
525 | }; | ||
510 | }; | 526 | }; |
511 | 527 | ||
512 | epit@020d0000 { /* EPIT1 */ | 528 | epit1: epit@020d0000 { /* EPIT1 */ |
513 | reg = <0x020d0000 0x4000>; | 529 | reg = <0x020d0000 0x4000>; |
514 | interrupts = <0 56 0x04>; | 530 | interrupts = <0 56 0x04>; |
515 | }; | 531 | }; |
516 | 532 | ||
517 | epit@020d4000 { /* EPIT2 */ | 533 | epit2: epit@020d4000 { /* EPIT2 */ |
518 | reg = <0x020d4000 0x4000>; | 534 | reg = <0x020d4000 0x4000>; |
519 | interrupts = <0 57 0x04>; | 535 | interrupts = <0 57 0x04>; |
520 | }; | 536 | }; |
521 | 537 | ||
522 | src@020d8000 { | 538 | src: src@020d8000 { |
523 | compatible = "fsl,imx6q-src"; | 539 | compatible = "fsl,imx6q-src"; |
524 | reg = <0x020d8000 0x4000>; | 540 | reg = <0x020d8000 0x4000>; |
525 | interrupts = <0 91 0x04 0 96 0x04>; | 541 | interrupts = <0 91 0x04 0 96 0x04>; |
526 | }; | 542 | }; |
527 | 543 | ||
528 | gpc@020dc000 { | 544 | gpc: gpc@020dc000 { |
529 | compatible = "fsl,imx6q-gpc"; | 545 | compatible = "fsl,imx6q-gpc"; |
530 | reg = <0x020dc000 0x4000>; | 546 | reg = <0x020dc000 0x4000>; |
531 | interrupts = <0 89 0x04 0 90 0x04>; | 547 | interrupts = <0 89 0x04 0 90 0x04>; |
@@ -536,7 +552,7 @@ | |||
536 | reg = <0x020e0000 0x38>; | 552 | reg = <0x020e0000 0x38>; |
537 | }; | 553 | }; |
538 | 554 | ||
539 | iomuxc@020e0000 { | 555 | iomuxc: iomuxc@020e0000 { |
540 | compatible = "fsl,imx6q-iomuxc"; | 556 | compatible = "fsl,imx6q-iomuxc"; |
541 | reg = <0x020e0000 0x4000>; | 557 | reg = <0x020e0000 0x4000>; |
542 | 558 | ||
@@ -748,17 +764,17 @@ | |||
748 | }; | 764 | }; |
749 | }; | 765 | }; |
750 | 766 | ||
751 | dcic@020e4000 { /* DCIC1 */ | 767 | dcic1: dcic@020e4000 { |
752 | reg = <0x020e4000 0x4000>; | 768 | reg = <0x020e4000 0x4000>; |
753 | interrupts = <0 124 0x04>; | 769 | interrupts = <0 124 0x04>; |
754 | }; | 770 | }; |
755 | 771 | ||
756 | dcic@020e8000 { /* DCIC2 */ | 772 | dcic2: dcic@020e8000 { |
757 | reg = <0x020e8000 0x4000>; | 773 | reg = <0x020e8000 0x4000>; |
758 | interrupts = <0 125 0x04>; | 774 | interrupts = <0 125 0x04>; |
759 | }; | 775 | }; |
760 | 776 | ||
761 | sdma@020ec000 { | 777 | sdma: sdma@020ec000 { |
762 | compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma"; | 778 | compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma"; |
763 | reg = <0x020ec000 0x4000>; | 779 | reg = <0x020ec000 0x4000>; |
764 | interrupts = <0 2 0x04>; | 780 | interrupts = <0 2 0x04>; |
@@ -784,7 +800,7 @@ | |||
784 | reg = <0x0217c000 0x4000>; | 800 | reg = <0x0217c000 0x4000>; |
785 | }; | 801 | }; |
786 | 802 | ||
787 | usb@02184000 { /* USB OTG */ | 803 | usbotg: usb@02184000 { |
788 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 804 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
789 | reg = <0x02184000 0x200>; | 805 | reg = <0x02184000 0x200>; |
790 | interrupts = <0 43 0x04>; | 806 | interrupts = <0 43 0x04>; |
@@ -794,7 +810,7 @@ | |||
794 | status = "disabled"; | 810 | status = "disabled"; |
795 | }; | 811 | }; |
796 | 812 | ||
797 | usb@02184200 { /* USB1 */ | 813 | usbh1: usb@02184200 { |
798 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 814 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
799 | reg = <0x02184200 0x200>; | 815 | reg = <0x02184200 0x200>; |
800 | interrupts = <0 40 0x04>; | 816 | interrupts = <0 40 0x04>; |
@@ -804,7 +820,7 @@ | |||
804 | status = "disabled"; | 820 | status = "disabled"; |
805 | }; | 821 | }; |
806 | 822 | ||
807 | usb@02184400 { /* USB2 */ | 823 | usbh2: usb@02184400 { |
808 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 824 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
809 | reg = <0x02184400 0x200>; | 825 | reg = <0x02184400 0x200>; |
810 | interrupts = <0 41 0x04>; | 826 | interrupts = <0 41 0x04>; |
@@ -813,7 +829,7 @@ | |||
813 | status = "disabled"; | 829 | status = "disabled"; |
814 | }; | 830 | }; |
815 | 831 | ||
816 | usb@02184600 { /* USB3 */ | 832 | usbh3: usb@02184600 { |
817 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 833 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
818 | reg = <0x02184600 0x200>; | 834 | reg = <0x02184600 0x200>; |
819 | interrupts = <0 42 0x04>; | 835 | interrupts = <0 42 0x04>; |
@@ -822,14 +838,14 @@ | |||
822 | status = "disabled"; | 838 | status = "disabled"; |
823 | }; | 839 | }; |
824 | 840 | ||
825 | usbmisc: usbmisc@02184800 { | 841 | usbmisc: usbmisc: usbmisc@02184800 { |
826 | #index-cells = <1>; | 842 | #index-cells = <1>; |
827 | compatible = "fsl,imx6q-usbmisc"; | 843 | compatible = "fsl,imx6q-usbmisc"; |
828 | reg = <0x02184800 0x200>; | 844 | reg = <0x02184800 0x200>; |
829 | clocks = <&clks 162>; | 845 | clocks = <&clks 162>; |
830 | }; | 846 | }; |
831 | 847 | ||
832 | ethernet@02188000 { | 848 | fec: ethernet@02188000 { |
833 | compatible = "fsl,imx6q-fec"; | 849 | compatible = "fsl,imx6q-fec"; |
834 | reg = <0x02188000 0x4000>; | 850 | reg = <0x02188000 0x4000>; |
835 | interrupts = <0 118 0x04 0 119 0x04>; | 851 | interrupts = <0 118 0x04 0 119 0x04>; |
@@ -843,43 +859,47 @@ | |||
843 | interrupts = <0 53 0x04 0 117 0x04 0 126 0x04>; | 859 | interrupts = <0 53 0x04 0 117 0x04 0 126 0x04>; |
844 | }; | 860 | }; |
845 | 861 | ||
846 | usdhc@02190000 { /* uSDHC1 */ | 862 | usdhc1: usdhc@02190000 { |
847 | compatible = "fsl,imx6q-usdhc"; | 863 | compatible = "fsl,imx6q-usdhc"; |
848 | reg = <0x02190000 0x4000>; | 864 | reg = <0x02190000 0x4000>; |
849 | interrupts = <0 22 0x04>; | 865 | interrupts = <0 22 0x04>; |
850 | clocks = <&clks 163>, <&clks 163>, <&clks 163>; | 866 | clocks = <&clks 163>, <&clks 163>, <&clks 163>; |
851 | clock-names = "ipg", "ahb", "per"; | 867 | clock-names = "ipg", "ahb", "per"; |
868 | bus-width = <4>; | ||
852 | status = "disabled"; | 869 | status = "disabled"; |
853 | }; | 870 | }; |
854 | 871 | ||
855 | usdhc@02194000 { /* uSDHC2 */ | 872 | usdhc2: usdhc@02194000 { |
856 | compatible = "fsl,imx6q-usdhc"; | 873 | compatible = "fsl,imx6q-usdhc"; |
857 | reg = <0x02194000 0x4000>; | 874 | reg = <0x02194000 0x4000>; |
858 | interrupts = <0 23 0x04>; | 875 | interrupts = <0 23 0x04>; |
859 | clocks = <&clks 164>, <&clks 164>, <&clks 164>; | 876 | clocks = <&clks 164>, <&clks 164>, <&clks 164>; |
860 | clock-names = "ipg", "ahb", "per"; | 877 | clock-names = "ipg", "ahb", "per"; |
878 | bus-width = <4>; | ||
861 | status = "disabled"; | 879 | status = "disabled"; |
862 | }; | 880 | }; |
863 | 881 | ||
864 | usdhc@02198000 { /* uSDHC3 */ | 882 | usdhc3: usdhc@02198000 { |
865 | compatible = "fsl,imx6q-usdhc"; | 883 | compatible = "fsl,imx6q-usdhc"; |
866 | reg = <0x02198000 0x4000>; | 884 | reg = <0x02198000 0x4000>; |
867 | interrupts = <0 24 0x04>; | 885 | interrupts = <0 24 0x04>; |
868 | clocks = <&clks 165>, <&clks 165>, <&clks 165>; | 886 | clocks = <&clks 165>, <&clks 165>, <&clks 165>; |
869 | clock-names = "ipg", "ahb", "per"; | 887 | clock-names = "ipg", "ahb", "per"; |
888 | bus-width = <4>; | ||
870 | status = "disabled"; | 889 | status = "disabled"; |
871 | }; | 890 | }; |
872 | 891 | ||
873 | usdhc@0219c000 { /* uSDHC4 */ | 892 | usdhc4: usdhc@0219c000 { |
874 | compatible = "fsl,imx6q-usdhc"; | 893 | compatible = "fsl,imx6q-usdhc"; |
875 | reg = <0x0219c000 0x4000>; | 894 | reg = <0x0219c000 0x4000>; |
876 | interrupts = <0 25 0x04>; | 895 | interrupts = <0 25 0x04>; |
877 | clocks = <&clks 166>, <&clks 166>, <&clks 166>; | 896 | clocks = <&clks 166>, <&clks 166>, <&clks 166>; |
878 | clock-names = "ipg", "ahb", "per"; | 897 | clock-names = "ipg", "ahb", "per"; |
898 | bus-width = <4>; | ||
879 | status = "disabled"; | 899 | status = "disabled"; |
880 | }; | 900 | }; |
881 | 901 | ||
882 | i2c@021a0000 { /* I2C1 */ | 902 | i2c1: i2c@021a0000 { |
883 | #address-cells = <1>; | 903 | #address-cells = <1>; |
884 | #size-cells = <0>; | 904 | #size-cells = <0>; |
885 | compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; | 905 | compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; |
@@ -889,7 +909,7 @@ | |||
889 | status = "disabled"; | 909 | status = "disabled"; |
890 | }; | 910 | }; |
891 | 911 | ||
892 | i2c@021a4000 { /* I2C2 */ | 912 | i2c2: i2c@021a4000 { |
893 | #address-cells = <1>; | 913 | #address-cells = <1>; |
894 | #size-cells = <0>; | 914 | #size-cells = <0>; |
895 | compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; | 915 | compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; |
@@ -899,7 +919,7 @@ | |||
899 | status = "disabled"; | 919 | status = "disabled"; |
900 | }; | 920 | }; |
901 | 921 | ||
902 | i2c@021a8000 { /* I2C3 */ | 922 | i2c3: i2c@021a8000 { |
903 | #address-cells = <1>; | 923 | #address-cells = <1>; |
904 | #size-cells = <0>; | 924 | #size-cells = <0>; |
905 | compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; | 925 | compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; |
@@ -913,12 +933,12 @@ | |||
913 | reg = <0x021ac000 0x4000>; | 933 | reg = <0x021ac000 0x4000>; |
914 | }; | 934 | }; |
915 | 935 | ||
916 | mmdc@021b0000 { /* MMDC0 */ | 936 | mmdc0: mmdc@021b0000 { /* MMDC0 */ |
917 | compatible = "fsl,imx6q-mmdc"; | 937 | compatible = "fsl,imx6q-mmdc"; |
918 | reg = <0x021b0000 0x4000>; | 938 | reg = <0x021b0000 0x4000>; |
919 | }; | 939 | }; |
920 | 940 | ||
921 | mmdc@021b4000 { /* MMDC1 */ | 941 | mmdc1: mmdc@021b4000 { /* MMDC1 */ |
922 | reg = <0x021b4000 0x4000>; | 942 | reg = <0x021b4000 0x4000>; |
923 | }; | 943 | }; |
924 | 944 | ||
@@ -946,7 +966,7 @@ | |||
946 | interrupts = <0 109 0x04>; | 966 | interrupts = <0 109 0x04>; |
947 | }; | 967 | }; |
948 | 968 | ||
949 | audmux@021d8000 { | 969 | audmux: audmux@021d8000 { |
950 | compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux"; | 970 | compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux"; |
951 | reg = <0x021d8000 0x4000>; | 971 | reg = <0x021d8000 0x4000>; |
952 | status = "disabled"; | 972 | status = "disabled"; |
diff --git a/arch/arm/include/debug/imx.S b/arch/arm/include/debug/imx.S index 0b65d792f664..0c4e17d4d359 100644 --- a/arch/arm/include/debug/imx.S +++ b/arch/arm/include/debug/imx.S | |||
@@ -10,6 +10,20 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | #define IMX6Q_UART1_BASE_ADDR 0x02020000 | ||
14 | #define IMX6Q_UART2_BASE_ADDR 0x021e8000 | ||
15 | #define IMX6Q_UART3_BASE_ADDR 0x021ec000 | ||
16 | #define IMX6Q_UART4_BASE_ADDR 0x021f0000 | ||
17 | #define IMX6Q_UART5_BASE_ADDR 0x021f4000 | ||
18 | |||
19 | /* | ||
20 | * IMX6Q_UART_BASE_ADDR is put in the middle to force the expansion | ||
21 | * of IMX6Q_UART##n##_BASE_ADDR. | ||
22 | */ | ||
23 | #define IMX6Q_UART_BASE_ADDR(n) IMX6Q_UART##n##_BASE_ADDR | ||
24 | #define IMX6Q_UART_BASE(n) IMX6Q_UART_BASE_ADDR(n) | ||
25 | #define IMX6Q_DEBUG_UART_BASE IMX6Q_UART_BASE(CONFIG_DEBUG_IMX6Q_UART_PORT) | ||
26 | |||
13 | #ifdef CONFIG_DEBUG_IMX1_UART | 27 | #ifdef CONFIG_DEBUG_IMX1_UART |
14 | #define UART_PADDR 0x00206000 | 28 | #define UART_PADDR 0x00206000 |
15 | #elif defined (CONFIG_DEBUG_IMX25_UART) | 29 | #elif defined (CONFIG_DEBUG_IMX25_UART) |
@@ -22,10 +36,8 @@ | |||
22 | #define UART_PADDR 0x73fbc000 | 36 | #define UART_PADDR 0x73fbc000 |
23 | #elif defined (CONFIG_DEBUG_IMX50_IMX53_UART) | 37 | #elif defined (CONFIG_DEBUG_IMX50_IMX53_UART) |
24 | #define UART_PADDR 0x53fbc000 | 38 | #define UART_PADDR 0x53fbc000 |
25 | #elif defined (CONFIG_DEBUG_IMX6Q_UART2) | 39 | #elif defined (CONFIG_DEBUG_IMX6Q_UART) |
26 | #define UART_PADDR 0x021e8000 | 40 | #define UART_PADDR IMX6Q_DEBUG_UART_BASE |
27 | #elif defined (CONFIG_DEBUG_IMX6Q_UART4) | ||
28 | #define UART_PADDR 0x021f0000 | ||
29 | #endif | 41 | #endif |
30 | 42 | ||
31 | /* | 43 | /* |
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index ff702c3f35b7..b09924112f99 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -836,7 +836,14 @@ config SOC_IMX53 | |||
836 | 836 | ||
837 | config SOC_IMX6Q | 837 | config SOC_IMX6Q |
838 | bool "i.MX6 Quad support" | 838 | bool "i.MX6 Quad support" |
839 | select ARCH_HAS_CPUFREQ | ||
840 | select ARCH_HAS_OPP | ||
839 | select ARM_CPU_SUSPEND if PM | 841 | select ARM_CPU_SUSPEND if PM |
842 | select ARM_ERRATA_743622 | ||
843 | select ARM_ERRATA_751472 | ||
844 | select ARM_ERRATA_754322 | ||
845 | select ARM_ERRATA_764369 if SMP | ||
846 | select ARM_ERRATA_775420 | ||
840 | select ARM_GIC | 847 | select ARM_GIC |
841 | select COMMON_CLK | 848 | select COMMON_CLK |
842 | select CPU_V7 | 849 | select CPU_V7 |
@@ -848,6 +855,10 @@ config SOC_IMX6Q | |||
848 | select MFD_SYSCON | 855 | select MFD_SYSCON |
849 | select PINCTRL | 856 | select PINCTRL |
850 | select PINCTRL_IMX6Q | 857 | select PINCTRL_IMX6Q |
858 | select PL310_ERRATA_588369 if CACHE_PL310 | ||
859 | select PL310_ERRATA_727915 if CACHE_PL310 | ||
860 | select PL310_ERRATA_769419 if CACHE_PL310 | ||
861 | select PM_OPP if PM | ||
851 | 862 | ||
852 | help | 863 | help |
853 | This enables support for Freescale i.MX6 Quad processor. | 864 | This enables support for Freescale i.MX6 Quad processor. |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index e5a82bb95b52..5f9f5919dd74 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
@@ -406,6 +406,7 @@ int __init mx6q_clocks_init(void) | |||
406 | clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); | 406 | clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); |
407 | clk_register_clkdev(clk[ahb], "ahb", NULL); | 407 | clk_register_clkdev(clk[ahb], "ahb", NULL); |
408 | clk_register_clkdev(clk[cko1], "cko1", NULL); | 408 | clk_register_clkdev(clk[cko1], "cko1", NULL); |
409 | clk_register_clkdev(clk[arm], NULL, "cpu0"); | ||
409 | 410 | ||
410 | /* | 411 | /* |
411 | * The gpmi needs 100MHz frequency in the EDO/Sync mode, | 412 | * The gpmi needs 100MHz frequency in the EDO/Sync mode, |
diff --git a/arch/arm/mach-imx/lluart.c b/arch/arm/mach-imx/lluart.c index 5f1510363ee7..2fdc9bf2fb5e 100644 --- a/arch/arm/mach-imx/lluart.c +++ b/arch/arm/mach-imx/lluart.c | |||
@@ -17,17 +17,25 @@ | |||
17 | 17 | ||
18 | #include "hardware.h" | 18 | #include "hardware.h" |
19 | 19 | ||
20 | #define IMX6Q_UART1_BASE_ADDR 0x02020000 | ||
21 | #define IMX6Q_UART2_BASE_ADDR 0x021e8000 | ||
22 | #define IMX6Q_UART3_BASE_ADDR 0x021ec000 | ||
23 | #define IMX6Q_UART4_BASE_ADDR 0x021f0000 | ||
24 | #define IMX6Q_UART5_BASE_ADDR 0x021f4000 | ||
25 | |||
26 | /* | ||
27 | * IMX6Q_UART_BASE_ADDR is put in the middle to force the expansion | ||
28 | * of IMX6Q_UART##n##_BASE_ADDR. | ||
29 | */ | ||
30 | #define IMX6Q_UART_BASE_ADDR(n) IMX6Q_UART##n##_BASE_ADDR | ||
31 | #define IMX6Q_UART_BASE(n) IMX6Q_UART_BASE_ADDR(n) | ||
32 | #define IMX6Q_DEBUG_UART_BASE IMX6Q_UART_BASE(CONFIG_DEBUG_IMX6Q_UART_PORT) | ||
33 | |||
20 | static struct map_desc imx_lluart_desc = { | 34 | static struct map_desc imx_lluart_desc = { |
21 | #ifdef CONFIG_DEBUG_IMX6Q_UART2 | 35 | #ifdef CONFIG_DEBUG_IMX6Q_UART |
22 | .virtual = MX6Q_IO_P2V(MX6Q_UART2_BASE_ADDR), | 36 | .virtual = IMX_IO_P2V(IMX6Q_DEBUG_UART_BASE), |
23 | .pfn = __phys_to_pfn(MX6Q_UART2_BASE_ADDR), | 37 | .pfn = __phys_to_pfn(IMX6Q_DEBUG_UART_BASE), |
24 | .length = MX6Q_UART2_SIZE, | 38 | .length = 0x4000, |
25 | .type = MT_DEVICE, | ||
26 | #endif | ||
27 | #ifdef CONFIG_DEBUG_IMX6Q_UART4 | ||
28 | .virtual = MX6Q_IO_P2V(MX6Q_UART4_BASE_ADDR), | ||
29 | .pfn = __phys_to_pfn(MX6Q_UART4_BASE_ADDR), | ||
30 | .length = MX6Q_UART4_SIZE, | ||
31 | .type = MT_DEVICE, | 39 | .type = MT_DEVICE, |
32 | #endif | 40 | #endif |
33 | }; | 41 | }; |
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 978b6dd00de4..9511142d436c 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
@@ -38,6 +38,40 @@ | |||
38 | #include "cpuidle.h" | 38 | #include "cpuidle.h" |
39 | #include "hardware.h" | 39 | #include "hardware.h" |
40 | 40 | ||
41 | #define IMX6Q_ANALOG_DIGPROG 0x260 | ||
42 | |||
43 | static int imx6q_revision(void) | ||
44 | { | ||
45 | struct device_node *np; | ||
46 | void __iomem *base; | ||
47 | static u32 rev; | ||
48 | |||
49 | if (!rev) { | ||
50 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop"); | ||
51 | if (!np) | ||
52 | return IMX_CHIP_REVISION_UNKNOWN; | ||
53 | base = of_iomap(np, 0); | ||
54 | if (!base) { | ||
55 | of_node_put(np); | ||
56 | return IMX_CHIP_REVISION_UNKNOWN; | ||
57 | } | ||
58 | rev = readl_relaxed(base + IMX6Q_ANALOG_DIGPROG); | ||
59 | iounmap(base); | ||
60 | of_node_put(np); | ||
61 | } | ||
62 | |||
63 | switch (rev & 0xff) { | ||
64 | case 0: | ||
65 | return IMX_CHIP_REVISION_1_0; | ||
66 | case 1: | ||
67 | return IMX_CHIP_REVISION_1_1; | ||
68 | case 2: | ||
69 | return IMX_CHIP_REVISION_1_2; | ||
70 | default: | ||
71 | return IMX_CHIP_REVISION_UNKNOWN; | ||
72 | } | ||
73 | } | ||
74 | |||
41 | void imx6q_restart(char mode, const char *cmd) | 75 | void imx6q_restart(char mode, const char *cmd) |
42 | { | 76 | { |
43 | struct device_node *np; | 77 | struct device_node *np; |
@@ -192,6 +226,7 @@ static void __init imx6q_timer_init(void) | |||
192 | { | 226 | { |
193 | mx6q_clocks_init(); | 227 | mx6q_clocks_init(); |
194 | twd_local_timer_of_register(); | 228 | twd_local_timer_of_register(); |
229 | imx_print_silicon_rev("i.MX6Q", imx6q_revision()); | ||
195 | } | 230 | } |
196 | 231 | ||
197 | static struct sys_timer imx6q_timer = { | 232 | static struct sys_timer imx6q_timer = { |
diff --git a/arch/arm/mach-imx/mx6q.h b/arch/arm/mach-imx/mx6q.h index f7e7dbac8f4b..19d3f54db5af 100644 --- a/arch/arm/mach-imx/mx6q.h +++ b/arch/arm/mach-imx/mx6q.h | |||
@@ -27,9 +27,5 @@ | |||
27 | #define MX6Q_CCM_SIZE 0x4000 | 27 | #define MX6Q_CCM_SIZE 0x4000 |
28 | #define MX6Q_ANATOP_BASE_ADDR 0x020c8000 | 28 | #define MX6Q_ANATOP_BASE_ADDR 0x020c8000 |
29 | #define MX6Q_ANATOP_SIZE 0x1000 | 29 | #define MX6Q_ANATOP_SIZE 0x1000 |
30 | #define MX6Q_UART2_BASE_ADDR 0x021e8000 | ||
31 | #define MX6Q_UART2_SIZE 0x4000 | ||
32 | #define MX6Q_UART4_BASE_ADDR 0x021f0000 | ||
33 | #define MX6Q_UART4_SIZE 0x4000 | ||
34 | 30 | ||
35 | #endif /* __MACH_MX6Q_H__ */ | 31 | #endif /* __MACH_MX6Q_H__ */ |