forked from Minki/linux
9188883fd6
N900 now seems to shut down the external oscillator when hitting off-idle. And Beagle XM seems to have OSC_EN pin connected to allow shutting down the oscillator looking at the schematics. The oscillator output is cut off in off-idle and you can monitor it from R56 on the bottom side of the board near the power jack. Note that for beagle we need to also enable the UART wake-up event, the others have that enabled in earlier patches. OMAP37XX EVM (TMDSEVM3730) does not seem to have twl4030 clken pin connected, so there is no point trying to enable shutting down of the oscillator on it for the extra latency it adds. Signed-off-by: Tony Lindgren <tony@atomide.com>
367 lines
8.4 KiB
Plaintext
367 lines
8.4 KiB
Plaintext
/*
|
|
* Copyright (C) 2011 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 "omap36xx.dtsi"
|
|
|
|
/ {
|
|
model = "TI OMAP3 BeagleBoard xM";
|
|
compatible = "ti,omap3-beagle-xm", "ti,omap36xx", "ti,omap3";
|
|
|
|
cpus {
|
|
cpu@0 {
|
|
cpu0-supply = <&vcc>;
|
|
};
|
|
};
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0x80000000 0x20000000>; /* 512 MB */
|
|
};
|
|
|
|
aliases {
|
|
display0 = &dvi0;
|
|
display1 = &tv0;
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
heartbeat {
|
|
label = "beagleboard::usr0";
|
|
gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* 150 -> D6 LED */
|
|
linux,default-trigger = "heartbeat";
|
|
};
|
|
|
|
mmc {
|
|
label = "beagleboard::usr1";
|
|
gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; /* 149 -> D7 LED */
|
|
linux,default-trigger = "mmc0";
|
|
};
|
|
};
|
|
|
|
pwmleds {
|
|
compatible = "pwm-leds";
|
|
|
|
pmu_stat {
|
|
label = "beagleboard::pmu_stat";
|
|
pwms = <&twl_pwmled 1 7812500>;
|
|
max-brightness = <127>;
|
|
};
|
|
};
|
|
|
|
sound {
|
|
compatible = "ti,omap-twl4030";
|
|
ti,model = "omap3beagle";
|
|
|
|
ti,mcbsp = <&mcbsp2>;
|
|
ti,codec = <&twl_audio>;
|
|
};
|
|
|
|
gpio_keys {
|
|
compatible = "gpio-keys";
|
|
|
|
user {
|
|
label = "user";
|
|
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
|
linux,code = <0x114>;
|
|
gpio-key,wakeup;
|
|
};
|
|
|
|
};
|
|
|
|
/* HS USB Port 2 Power */
|
|
hsusb2_power: hsusb2_power_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "hsusb2_vbus";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&twl_gpio 18 0>; /* GPIO LEDA */
|
|
startup-delay-us = <70000>;
|
|
};
|
|
|
|
/* HS USB Host PHY on PORT 2 */
|
|
hsusb2_phy: hsusb2_phy {
|
|
compatible = "usb-nop-xceiv";
|
|
reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */
|
|
vcc-supply = <&hsusb2_power>;
|
|
};
|
|
|
|
tfp410: encoder@0 {
|
|
compatible = "ti,tfp410";
|
|
powerdown-gpios = <&twl_gpio 2 GPIO_ACTIVE_LOW>;
|
|
|
|
/* XXX pinctrl from twl */
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
tfp410_in: endpoint@0 {
|
|
remote-endpoint = <&dpi_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
tfp410_out: endpoint@0 {
|
|
remote-endpoint = <&dvi_connector_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
dvi0: connector@0 {
|
|
compatible = "dvi-connector";
|
|
label = "dvi";
|
|
|
|
digital;
|
|
|
|
ddc-i2c-bus = <&i2c3>;
|
|
|
|
port {
|
|
dvi_connector_in: endpoint {
|
|
remote-endpoint = <&tfp410_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
tv0: connector@1 {
|
|
compatible = "svideo-connector";
|
|
label = "tv";
|
|
|
|
port {
|
|
tv_connector_in: endpoint {
|
|
remote-endpoint = <&venc_out>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&omap3_pmx_wkup {
|
|
gpio1_pins: pinmux_gpio1_pins {
|
|
pinctrl-single,pins = <
|
|
0x0e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */
|
|
>;
|
|
};
|
|
|
|
dss_dpi_pins2: pinmux_dss_dpi_pins1 {
|
|
pinctrl-single,pins = <
|
|
0x0a (PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */
|
|
0x0c (PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */
|
|
0x10 (PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */
|
|
0x12 (PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */
|
|
0x14 (PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */
|
|
0x16 (PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */
|
|
>;
|
|
};
|
|
};
|
|
|
|
&omap3_pmx_core {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <
|
|
&hsusb2_pins
|
|
>;
|
|
|
|
uart3_pins: pinmux_uart3_pins {
|
|
pinctrl-single,pins = <
|
|
0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
|
|
0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
|
|
>;
|
|
};
|
|
|
|
hsusb2_pins: pinmux_hsusb2_pins {
|
|
pinctrl-single,pins = <
|
|
OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
|
|
OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
|
|
OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
|
|
OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
|
|
OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
|
|
OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
|
|
>;
|
|
};
|
|
|
|
dss_dpi_pins1: pinmux_dss_dpi_pins2 {
|
|
pinctrl-single,pins = <
|
|
OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
|
|
OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
|
|
OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
|
|
OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
|
|
|
|
OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
|
|
OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
|
|
OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
|
|
OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
|
|
OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
|
|
OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
|
|
OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
|
|
OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
|
|
OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
|
|
OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
|
|
OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
|
|
OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
|
|
|
|
OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3) /* dss_data18.dss_data0 */
|
|
OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3) /* dss_data19.dss_data1 */
|
|
OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3) /* dss_data20.dss_data2 */
|
|
OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3) /* dss_data21.dss_data3 */
|
|
OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3) /* dss_data22.dss_data4 */
|
|
OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3) /* dss_data23.dss_data5 */
|
|
>;
|
|
};
|
|
};
|
|
|
|
&omap3_pmx_core2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <
|
|
&hsusb2_2_pins
|
|
>;
|
|
|
|
hsusb2_2_pins: pinmux_hsusb2_2_pins {
|
|
pinctrl-single,pins = <
|
|
OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
|
|
OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
|
|
OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
|
|
OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
|
|
OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
|
|
OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
|
|
>;
|
|
};
|
|
};
|
|
|
|
&i2c1 {
|
|
clock-frequency = <2600000>;
|
|
|
|
twl: twl@48 {
|
|
reg = <0x48>;
|
|
interrupts = <7>; /* SYS_NIRQ cascaded to intc */
|
|
interrupt-parent = <&intc>;
|
|
|
|
twl_audio: audio {
|
|
compatible = "ti,twl4030-audio";
|
|
codec {
|
|
};
|
|
};
|
|
|
|
twl_power: power {
|
|
compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off";
|
|
ti,use_poweroff;
|
|
};
|
|
};
|
|
};
|
|
|
|
#include "twl4030.dtsi"
|
|
#include "twl4030_omap3.dtsi"
|
|
|
|
&i2c2 {
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
&i2c3 {
|
|
clock-frequency = <100000>;
|
|
};
|
|
|
|
&mmc1 {
|
|
vmmc-supply = <&vmmc1>;
|
|
vmmc_aux-supply = <&vsim>;
|
|
bus-width = <8>;
|
|
};
|
|
|
|
&mmc2 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&mmc3 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&twl_gpio {
|
|
ti,use-leds;
|
|
/* pullups: BIT(1) */
|
|
ti,pullups = <0x000002>;
|
|
/*
|
|
* pulldowns:
|
|
* BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
|
|
* BIT(15), BIT(16), BIT(17)
|
|
*/
|
|
ti,pulldowns = <0x03a1c4>;
|
|
};
|
|
|
|
&usb_otg_hs {
|
|
interface-type = <0>;
|
|
usb-phy = <&usb2_phy>;
|
|
phys = <&usb2_phy>;
|
|
phy-names = "usb2-phy";
|
|
mode = <3>;
|
|
power = <50>;
|
|
};
|
|
|
|
&uart3 {
|
|
interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart3_pins>;
|
|
};
|
|
|
|
&gpio1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpio1_pins>;
|
|
};
|
|
|
|
&usbhshost {
|
|
port2-mode = "ehci-phy";
|
|
};
|
|
|
|
&usbhsehci {
|
|
phys = <0 &hsusb2_phy>;
|
|
};
|
|
|
|
&vaux2 {
|
|
regulator-name = "usb_1v8";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
&mcbsp2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&dss {
|
|
status = "ok";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <
|
|
&dss_dpi_pins1
|
|
&dss_dpi_pins2
|
|
>;
|
|
|
|
port {
|
|
dpi_out: endpoint {
|
|
remote-endpoint = <&tfp410_in>;
|
|
data-lines = <24>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&venc {
|
|
status = "ok";
|
|
|
|
vdda-supply = <&vdac>;
|
|
|
|
port {
|
|
venc_out: endpoint {
|
|
remote-endpoint = <&tv_connector_in>;
|
|
ti,channels = <2>;
|
|
};
|
|
};
|
|
};
|