mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-13 09:15:02 +08:00
31f0820a67
We've had deeper idle states working on omaps for few years now, but only in the legacy mode. When booted with device tree, the wake-up events did not have a chance to work until commit3e6cee1786
(pinctrl: single: Add support for wake-up interrupts) that recently got merged. In addition to that we also needed commit79d9701559
(of/irq: create interrupts-extended property) and9ec36cafe4
(of/irq: do irq resolution in platform_get_irq) that are now also merged. So let's fix the wake-up events for some selected omaps so devices booted in device tree mode won't just hang if deeper power states are enabled, and so systems can wake up from suspend to the serial port event. Note that there's no longer need to specify the wake-up bit in the pinctrl settings, the request_irq on the wake-up pin takes care of that. Cc: devicetree@vger.kernel.org Cc: "Benoît Cousson" <bcousson@baylibre.com> Cc: Kevin Hilman <khilman@linaro.org> Cc: Nishanth Menon <nm@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Cc: Tero Kristo <t-kristo@ti.com> [tony@atomide.com: updated comments, added board LDP] Signed-off-by: Tony Lindgren <tony@atomide.com>
259 lines
6.0 KiB
Plaintext
259 lines
6.0 KiB
Plaintext
/*
|
|
* Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
/dts-v1/;
|
|
|
|
#include "omap34xx.dtsi"
|
|
#include "omap-gpmc-smsc911x.dtsi"
|
|
|
|
/ {
|
|
model = "TI OMAP3430 LDP (Zoom1 Labrador)";
|
|
compatible = "ti,omap3-ldp", "ti,omap3";
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0x80000000 0x8000000>; /* 128 MB */
|
|
};
|
|
|
|
cpus {
|
|
cpu@0 {
|
|
cpu0-supply = <&vcc>;
|
|
};
|
|
};
|
|
|
|
gpio_keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpio_key_pins>;
|
|
|
|
key_enter {
|
|
label = "enter";
|
|
gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* gpio101 */
|
|
linux,code = <0x0107001c>; /* KEY_ENTER */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_f1 {
|
|
label = "f1";
|
|
gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* gpio102 */
|
|
linux,code = <0x0303003b>; /* KEY_F1 */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_f2 {
|
|
label = "f2";
|
|
gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* gpio103 */
|
|
linux,code = <0x0403003c>; /* KEY_F2 */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_f3 {
|
|
label = "f3";
|
|
gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* gpio104 */
|
|
linux,code = <0x0503003d>; /* KEY_F3 */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_f4 {
|
|
label = "f4";
|
|
gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* gpio105 */
|
|
linux,code = <0x0704003e>; /* KEY_F4 */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_left {
|
|
label = "left";
|
|
gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */
|
|
linux,code = <0x04070069>; /* KEY_LEFT */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_right {
|
|
label = "right";
|
|
gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* gpio107 */
|
|
linux,code = <0x0507006a>; /* KEY_RIGHT */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_up {
|
|
label = "up";
|
|
gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; /* gpio108 */
|
|
linux,code = <0x06070067>; /* KEY_UP */
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
key_down {
|
|
label = "down";
|
|
gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* gpio109 */
|
|
linux,code = <0x0707006c>; /* KEY_DOWN */
|
|
gpio-key,wakeup;
|
|
};
|
|
};
|
|
};
|
|
|
|
&gpmc {
|
|
ranges = <0 0 0x00000000 0x01000000>,
|
|
<1 0 0x08000000 0x01000000>;
|
|
|
|
nand@0,0 {
|
|
linux,mtd-name= "micron,nand";
|
|
reg = <0 0 0>;
|
|
nand-bus-width = <16>;
|
|
ti,nand-ecc-opt = "bch8";
|
|
|
|
gpmc,sync-clk-ps = <0>;
|
|
gpmc,cs-on-ns = <0>;
|
|
gpmc,cs-rd-off-ns = <44>;
|
|
gpmc,cs-wr-off-ns = <44>;
|
|
gpmc,adv-on-ns = <6>;
|
|
gpmc,adv-rd-off-ns = <34>;
|
|
gpmc,adv-wr-off-ns = <44>;
|
|
gpmc,we-off-ns = <40>;
|
|
gpmc,oe-off-ns = <54>;
|
|
gpmc,access-ns = <64>;
|
|
gpmc,rd-cycle-ns = <82>;
|
|
gpmc,wr-cycle-ns = <82>;
|
|
gpmc,wr-access-ns = <40>;
|
|
gpmc,wr-data-mux-bus-ns = <0>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "X-Loader";
|
|
reg = <0 0x80000>;
|
|
};
|
|
partition@80000 {
|
|
label = "U-Boot";
|
|
reg = <0x80000 0x140000>;
|
|
};
|
|
partition@1c0000 {
|
|
label = "Environment";
|
|
reg = <0x1c0000 0x40000>;
|
|
};
|
|
partition@200000 {
|
|
label = "Kernel";
|
|
reg = <0x200000 0x1e00000>;
|
|
};
|
|
partition@2000000 {
|
|
label = "Filesystem";
|
|
reg = <0x2000000 0xe000000>;
|
|
};
|
|
};
|
|
|
|
ethernet@gpmc {
|
|
interrupt-parent = <&gpio5>;
|
|
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
|
|
reg = <1 0 0xff>;
|
|
};
|
|
};
|
|
|
|
&i2c1 {
|
|
clock-frequency = <2600000>;
|
|
|
|
twl: twl@48 {
|
|
reg = <0x48>;
|
|
interrupts = <7>; /* SYS_NIRQ cascaded to intc */
|
|
interrupt-parent = <&intc>;
|
|
};
|
|
};
|
|
|
|
#include "twl4030.dtsi"
|
|
#include "twl4030_omap3.dtsi"
|
|
|
|
&i2c2 {
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
&i2c3 {
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
&mmc1 {
|
|
/* See 35xx errata 2.1.1.128 in SPRZ278F */
|
|
compatible = "ti,omap3-pre-es3-hsmmc";
|
|
vmmc-supply = <&vmmc1>;
|
|
bus-width = <4>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc1_pins>;
|
|
};
|
|
|
|
&mmc2 {
|
|
status="disabled";
|
|
};
|
|
|
|
&mmc3 {
|
|
status="disabled";
|
|
};
|
|
|
|
&omap3_pmx_core {
|
|
gpio_key_pins: pinmux_gpio_key_pins {
|
|
pinctrl-single,pins = <
|
|
0xea (PIN_INPUT | MUX_MODE4) /* cam_d2.gpio_101 */
|
|
0xec (PIN_INPUT | MUX_MODE4) /* cam_d3.gpio_102 */
|
|
0xee (PIN_INPUT | MUX_MODE4) /* cam_d4.gpio_103 */
|
|
0xf0 (PIN_INPUT | MUX_MODE4) /* cam_d5.gpio_104 */
|
|
0xf2 (PIN_INPUT | MUX_MODE4) /* cam_d6.gpio_105 */
|
|
0xf4 (PIN_INPUT | MUX_MODE4) /* cam_d7.gpio_106 */
|
|
0xf6 (PIN_INPUT | MUX_MODE4) /* cam_d8.gpio_107 */
|
|
0xf8 (PIN_INPUT | MUX_MODE4) /* cam_d9.gpio_108 */
|
|
0xfa (PIN_INPUT | MUX_MODE4) /* cam_d10.gpio_109 */
|
|
>;
|
|
};
|
|
|
|
musb_pins: pinmux_musb_pins {
|
|
pinctrl-single,pins = <
|
|
0x172 (PIN_INPUT | MUX_MODE0) /* hsusb0_clk.hsusb0_clk */
|
|
0x17a (PIN_INPUT | MUX_MODE0) /* hsusb0_data0.hsusb0_data0 */
|
|
0x17c (PIN_INPUT | MUX_MODE0) /* hsusb0_data1.hsusb0_data1 */
|
|
0x17e (PIN_INPUT | MUX_MODE0) /* hsusb0_data2.hsusb0_data2 */
|
|
0x180 (PIN_INPUT | MUX_MODE0) /* hsusb0_data3.hsusb0_data3 */
|
|
0x182 (PIN_INPUT | MUX_MODE0) /* hsusb0_data4.hsusb0_data4 */
|
|
0x184 (PIN_INPUT | MUX_MODE0) /* hsusb0_data5.hsusb0_data5 */
|
|
0x186 (PIN_INPUT | MUX_MODE0) /* hsusb0_data6.hsusb0_data6 */
|
|
0x188 (PIN_INPUT | MUX_MODE0) /* hsusb0_data7.hsusb0_data7 */
|
|
0x176 (PIN_INPUT | MUX_MODE0) /* hsusb0_dir.hsusb0_dir */
|
|
0x178 (PIN_INPUT | MUX_MODE0) /* hsusb0_nxt.hsusb0_nxt */
|
|
0x174 (PIN_OUTPUT | MUX_MODE0) /* hsusb0_stp.hsusb0_stp */
|
|
>;
|
|
};
|
|
|
|
mmc1_pins: pinmux_mmc1_pins {
|
|
pinctrl-single,pins = <
|
|
OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.mmc1_clk */
|
|
OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.mmc1_cmd */
|
|
OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.mmc1_dat0 */
|
|
OMAP3_CORE1_IOPAD(0x214A, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.mmc1_dat1 */
|
|
OMAP3_CORE1_IOPAD(0x214C, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.mmc1_dat2 */
|
|
OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.mmc1_dat3 */
|
|
>;
|
|
};
|
|
};
|
|
|
|
&uart3 {
|
|
interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
|
|
};
|
|
|
|
&usb_otg_hs {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&musb_pins>;
|
|
interface-type = <0>;
|
|
usb-phy = <&usb2_phy>;
|
|
mode = <3>;
|
|
power = <50>;
|
|
};
|
|
|
|
&vaux1 {
|
|
/* Needed for ads7846 */
|
|
regulator-name = "vcc";
|
|
};
|
|
|
|
&vpll2 {
|
|
/* Needed for DSS */
|
|
regulator-name = "vdds_dsi";
|
|
};
|