summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts
diff options
context:
space:
mode:
authormattis fjallstrom <mattis@acm.org>2015-07-23 17:15:27 -0700
committermattis fjallstrom <mattis@acm.org>2015-07-23 17:15:27 -0700
commit74d71e3bbccfdb208dd4385df5a636f889b3cd05 (patch)
tree1da3047144075bed53290b018a675d9686c4fb69 /arch/arm/boot/dts
parent5d1c09eedec0cf5fd486d240b4ede1c476ed6adf (diff)
parentcd0f92406cc231fda66c30312f48d12fab5ac614 (diff)
downloadolio-linux-3.10-74d71e3bbccfdb208dd4385df5a636f889b3cd05.tar.xz
olio-linux-3.10-74d71e3bbccfdb208dd4385df5a636f889b3cd05.zip
Merged bluetooth and ST mods from mattis_bt_work.
Change-Id: Ic904469eae89e5678a502e78309b30ab9715cd41
Diffstat (limited to 'arch/arm/boot/dts')
-rw-r--r--arch/arm/boot/dts/omap3.dtsi10
-rw-r--r--arch/arm/boot/dts/omap3_h1.dts337
2 files changed, 240 insertions, 107 deletions
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 78e97bea7af..cae4e9725d0 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -13,12 +13,13 @@
/ {
compatible = "ti,omap3430", "ti,omap3";
interrupt-parent = <&intc>;
-
+/*
aliases {
serial0 = &uart1;
serial1 = &uart2;
serial2 = &uart3;
};
+ */
cpus {
cpu@0 {
@@ -207,7 +208,7 @@
<&omap3_pmx_core 26 0xd9 1>,
<&omap3_pmx_core 28 0xc1 4>;
};
-
+/*
uart1: serial@4806a000 {
compatible = "ti,omap3-uart";
ti,hwmods = "uart1";
@@ -224,8 +225,8 @@
compatible = "ti,omap3-uart";
ti,hwmods = "uart3";
clock-frequency = <48000000>;
- };
- /*
+ }; */
+
i2c1: i2c@48070000 {
compatible = "ti,omap3-i2c";
#address-cells = <1>;
@@ -233,6 +234,7 @@
ti,hwmods = "i2c1";
};
+ /*
i2c2: i2c@48072000 {
compatible = "ti,omap3-i2c";
#address-cells = <1>;
diff --git a/arch/arm/boot/dts/omap3_h1.dts b/arch/arm/boot/dts/omap3_h1.dts
index 2e69ef757ff..94f566db142 100644
--- a/arch/arm/boot/dts/omap3_h1.dts
+++ b/arch/arm/boot/dts/omap3_h1.dts
@@ -26,20 +26,43 @@
800000 1275000
/* 1000000 1337500 */
>;
+ cpu0-supply = <&omap_tps65910>;
/* OPP tolerance in percentage */
voltage-tolerance = <0>;
reset-voltage = <1275000>;
};
};
+ vbat: fixedregulator@0 {
+ compatible = "regulator-fixed";
+ regulator-name = "vbat";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+ regulator-boot-on;
+ };
+
+ omap_pimic {
+ omap_tps65910: omap_vdd1 {
+ compatible = "ti,omap-tps65910-vdd1";
+ ti,boot-voltage-micro-volts = <1275000>;
+ ti,vp = <&vp_mpu>;
+ };
+
+ omap_tps65910_vdd2: omap_vdd2 {
+ compatible = "ti,omap-tps65910-vdd2";
+ ti,boot-voltage-micro-volts = <1200000>;
+ ti,vp = <&vp_core>;
+ };
+ };
+
pad-wkup {
/* on omap, the irqs are calculated as follows:
* for the 96 intc IRQs
* irq = 16 + irq_offset (from TRM sec 12.3.2)
- * for a gpio IRQ (banks numbered 1 to 6
- * irq = 16 + 96 + (gpio_bank - 1) * 32
+ * for a gpio IRQ (banks numbered 1 to 6)
+ * irq = 16 + 96 + (gpio_bank - 1) * 32 + GPIO no.
*/
- compatible = "ti,pad-wkup";
+ compatible = "ti,pad-wkup";
/* Map the pad offset (off) to an interrupt (IRQ). */
/* if handle is 1, an irq will be generated based on */
@@ -52,8 +75,17 @@
/* listed below will be reported as the wakeup reason */
/* */
/* off IRQ handle */
- ti,pad_irq = <0x16e 90 1>, /* uart3 - serial rx */
- <0x9f6 143 1>; /* mpu6515 irq pin */
+ ti,pad_irq = <0x150 88 1>, /* uart1 - BT input */
+ <0x16e 90 0>, /* uart3 - serial rx */
+ <0x9f6 143 1>, /* mpu6515 irq pin - is this offset correct? */
+ <0x9f4 123 1>, /* BT host wake */
+ <0x1b0 23 1>; /* sys_nirq */
+ };
+
+ sound {
+ compatible = "olio,omap-soc-omap3h1";
+ olio,mcbsp = <&mcbsp3>;
+ olio,mic_enable = <&gpio5 18 0>;
};
};
@@ -76,7 +108,7 @@
sys_off_mode;
auto_off;
auto_retention;
- offmodesetup_time = <3500>;
+ offmodesetup_time = <6000>;
clksetup_time = <1000>;
};
@@ -84,6 +116,7 @@
pinctrl-names = "default";
pinctrl-0 = <
&board_pins
+ &dev_pins
>;
board_pins: pinmux_board_pins {
@@ -116,17 +149,17 @@
0x1a0 0x000 /* MCSPI1_CS1, MODE0 | OUTPUT */
/* CKE pin for memory */
- 0x232 0x000 /* SDRC_CKE0, MODE0 | OUTPUT */
- 0x234 0x000 /* SDRC_CKE1, MODE0 | OUTPUT */
+ 0x232 0x000 /* SDRC_CKE0, MODE0 | OUTPUT */
+ 0x234 0x000 /* SDRC_CKE1, MODE0 | OUTPUT */
/* touch reset */
0x0f2 0x11c /* CAM_D6, MODE4 | INPUT_PULLUP */
- 0x5ba 0x004 /* ETK_D7, MODE4 | OUTPUT */
- 0x1b0 0x100 /* SYS_NIRQ, MODE0 | INPUT */
+ 0x1b0 0xc100 /* SYS_NIRQ, MODE0 | INPUT | OFFWAKEUP */
+
0x0dc 0x004 /* CAM_HS, MODE4 | OUTPUT */
- /* USB */
+ /* USB */
0x172 0x100 /* HSUSB0_CLK, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT) */
0x174 0x000 /* HSUSB0_STP, (OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT) */
@@ -142,33 +175,52 @@
0x188 0x100 /* HSUSB0_DATA7, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT) */
/* pin for controlling bluetooth chip, settings from uboot */
+
+ 0x1a8 0x004 /* CONTROL_PADCONF_MCSPI2_SIMO, (IDIS | PI | M4 ) */
0x1aa 0x004 /* CONTROL_PADCONF_MCSPI2_SOMI, (IDIS | PI | M4 ) */
/* BT_WAKE_GPIO - for waking up BT */
- /* OMAP_OFF_ENABLE and OMAP_OFF_PULL_EN for sleep modes. */
- 0x0da 0x1204 /* DSS_DATA23, (IDIS | PI | M4 ) */
+ /* OMAP_OFF_ENABLE, OMAP_OFF_PULL_EN, OMAP_OFF_OUTENABLE for sleep modes. */
+ /* Now set this to regular old output */
+ 0x0da 0x004 /* 0x1604 */ /* DSS_DATA23, (IDIS | PI | M4 ) */
+ /* UART3 pins */
+ 0x16e 0x100 /* RX, input, off wake up */
+ 0x170 0x000 /* TX, output */
+
+ /* GPIO146, aka UART2TX, aka Microphone enable */
+ 0x148 0x161C /* (204) OUTPUT | GPIO | OFF_ENABLE | OFF_PULL_LOW */
+ /* (0x161C) 0001011000011100 | PULL_ENA | PULL_UP */
+
/* Accelerometer interrupt */
+ /* I've tried configuring this both in the wkup pinmux (below) and here,
+ but this location makes it not function as an interrupt... ??? */
/* 0x9f6 0x4104 */ /* JTAG_EMU1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
- OMAP_PIN_OFF_WAKEUPENABLE */
+ OMAP_PIN_OFF_WAKEUPENABLE */
+
+ 0x14c 0x000 /* UART1, BT, TX */
+ 0x14e 0x000 /* UART1, BT, RTS */
+ 0x150 0x4100 /* UART1, BT, CTS */
+ 0x152 0x100 /* UART1, BT, RX */
>;
};
- uart1_pins: pinmux_uart1_pins {
- pinctrl-single,pins = <
- /* uart1 */
- 0x152 0x118 /* UART1_RX, MODEO | (uboot: ien, pullup, m0 */
- 0x146 0x000 /* UART1_TX, MODE0 | OUTPUT, MODE0 */
- >;
- };
+ dev_pins: pinmux_pv_pins {
+ pinctrl-single,pins = <
+ 0x5b2 0x004 /* USB control, ETK_D3, MODE4 | OUTPUT */
+ /* 0x1a2 0x104 */ /* ALS interrupt, input, GPIO */
+ 0x086 0x004 /* DRV2605 vibrator, output, GPIO */
+ /* 0x938 0x104 */ /* Battery state, input, GPIO */
+ >;
+ };
- uart3_pins: pinmux_uart3_pins {
+ i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = <
- /* uart3 */
- 0x16e 0x4118 /* UART3_RX, MODEO | INPUT_PULLUP | OFFWAKEUP*/
- 0x170 0x000 /* UART3_TX, MODE0 | OUTPUT */
+ 0x18a 0x118 /* I2C1_SCL, MODE0 | INPUT_PULLUP */
+ 0x18c 0x118 /* I2C1_SCA, MODE0 | INPUT_PULLUP */
>;
};
+
};
@@ -177,26 +229,177 @@
pinctrl-names = "default";
pinctrl-0 = <&wkup_pins>;
- wkup_pins: pinmux_wakeup_pins {
+ wkup_pins: pinmux_wakeup_pins {
pinctrl-single,pins = <
0x006 0x008 /* SYS_CLKREQ, MODE0 | PULLDOWN */
0x018 0x000 /* SYS_OFF_MODE, MODE0 */
0x01a 0x10c /* SYS_CLKOUT1, MODE4 | INPUT_PULLDOWN */
- /* Bluetooth wakeup */
- /* 0x024 0x4104 */ /* JTAG_EMU0, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
+
+ /* Wakeup from Bluetooth */
+ 0x024 0x410C /* JTAG_EMU0, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
OMAP_PIN_OFF_WAKEUPENABLE */
/* Accelerometer interrupt */
- 0x026 0x4104 /* JTAG_EMU1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
+ 0x026 0x410C /* JTAG_EMU1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
OMAP_PIN_OFF_WAKEUPENABLE */
+
>;
};
};
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+
+ status = "okay";
+ clock-frequency = <400000>;
+
+ tps: tps@2d {
+ reg = <0x2d>;
+ };
+};
+
+/include/ "tps65910.dtsi"
+
+&tps {
+ interrupts = <7>; /* SYS_NIRQ */
+ interrupt-parent = <&intc>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ ti,en-ck32k-xtal;
+ ti,en-dev-slp;
+ ti,sleepsig-pol;
+ ti,clkout32k-keepon;
+ /* set SR_CTL_I2C_SEL - access to smartreflex registers by control i2c */
+ ti,system-power-controller;
+
+ vcc1-supply = <&vbat>;
+ vcc2-supply = <&vbat>;
+ vcc3-supply = <&vbat>;
+ vcc4-supply = <&vbat>;
+ vcc5-supply = <&vbat>;
+ vcc6-supply = <&vbat>;
+ vcc7-supply = <&vbat>;
+ vccio-supply = <&vbat>;
+
+ regulators {
+ vrtc_reg: regulator@0 {
+ regulator-always-on;
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ /* DSS is on this one */
+ vio_reg: regulator@1 {
+ regulator-name = "vdds_dsi";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ /* Leave one and two on for reliable wake-up */
+
+ vdd1_reg: regulator@2 {
+ /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
+ /*
+ regulator-boot-on;
+ regulator-always-on;
+ */
+ /* external sleep control by means of SYS_OFF_MODE signal */
+ regulator-name = "vdd_mpu_iva";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <1350000>;
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ vdd2_reg: regulator@3 {
+ /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
+ /*
+ regulator-boot-on;
+ regulator-always-on;
+ */
+ /* external sleep control by means of SYS_OFF_MODE signal */
+ regulator-name = "vdd_core";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <1200000>;
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ /* not used, I think */
+ vdd3_reg: regulator@4 {
+ status = "disabled";
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ /* This is the accelerometer. We always want it on. */
+ vdig1_reg: regulator@5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ /* vdig2_reg: regulator@6 {}; unused */
+ vdig2_reg: regulator@6 {
+ status = "disabled";
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ /* Nobody is explicitly using this rail, but it seems like it goes to
+ * VDDA_DPLL_PER on the chip. So we need it.
+ */
+ vpll_reg: regulator@7 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ /* vdac_reg: regulator@8 {}; unused */
+ vdac_reg: regulator@8 {
+ status = "disabled";
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ vaux1_reg: regulator@9 { /* not used, 2.85V by default */
+ status = "disabled";
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ vaux2_reg: regulator@10 {
+ regulator-name = "vaux2";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ ti,regulator-ext-sleep-control = <8>;
+ };
+
+ /* This is Bluetooth - never turn it off */
+
+ vaux33_reg: regulator@11 {
+ regulator-name = "vaux33";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ /* ti,regulator-ext-sleep-control = <8>; */
+ };
+
+ /* This one goes to both SPI (for DSS) and touch. How can I
+ * specify two consumers in DT? (vdd for dss, avdd for touch).
+ */
+ vmmc_reg: regulator@12 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ ti,regulator-ext-sleep-control = <8>;
+ };
+ };
+};
+
+
/* leave gpio bank interface clocks on during suspend
* to avoid race condition in gpio_irq_handler */
&gpio1 {
- ti,no_idle_on_suspend;
-};
+ ti,no_idle_on_suspend;
+ };
&gpio2 {
ti,no_idle_on_suspend;
@@ -232,75 +435,3 @@
};
-#if 0 /* Not currently used */
-&i2c1 {
- /* clock-frequency = <400000>; */
- /* PMIC ONLY */
-};
-
-
-/* I2C-2 has everything other than PMIC. */
-
-&i2c2 {
- clock-frequency = <400000>;
-
- mxt224@4a { /* Taken from Minnow, needs to be updated */
- compatible = "atmel,maxtouch"; /* OLIO */
- reg = <0x4a>; /* OLIO */
- interrupt-parent = <&gpio4>;
- interrupts = <3 0>; /* gpio-99 32 * 3 + 3 */
- wakeup-source;
- atmel,cfg-name = ""; /* needs setting, OLIO */
- atmel,reset_gpio = <>; /* needs setting, OLIO */
-
- /* below is from minnow */
-
- /* gpios = <&gpio4 3 0>, /\* IRQ gpio-099 *\/ */
- /* <&gpio6 4 0>; /\* RESET gpio-164*\/ */
-
- /* pinctrl-names = "pullup", "pulldown"; */
- /* pinctrl-0 = <&atmxt_int_pullup>; */
- /* pinctrl-1 = <&atmxt_int_pulldown>; */
- /* support-snowflake = <1>; */
- };
-
- mpu6515@68 {
- };
-
- /* This driver does not yet support device tree
- lm3530-led@38 {
- };*/
-
- /* This driver does not yet support device tree
- cm3391@10 {
- };*/
-
-
-
-};
-
-&i2c3 {
- clock-frequency = <400000>;
-
- /* This driver does not yet support device tree
- bq274xx@55 {
- }; */
-};
-
-#endif
-
-&uart1 {
- pinctrl-0 = <&uart1_pins>;
- pinctrl-names = "default";
-};
-
-&uart2 {
- status = "disabled";
-};
-
-&uart3 {
- pinctrl-0 = <&uart3_pins>;
- pinctrl-names = "default";
- autosuspend-delay = <(-1)>; /* -1 = infinity. Negative value needs parens */
- wakeup-capable;
-};