diff options
Diffstat (limited to 'arch/arm/boot')
| -rw-r--r-- | arch/arm/boot/dts/omap3.dtsi | 10 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3_h1.dts | 337 | 
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; -};  |