omap3: Copy twl4030 device tree from Linux 4.9.y stable

Many OMAP3 boards use a TWL4030 PMIC.  This brings in the related
device tree information for common TWL4030 and TWL4030 with OMAP3.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
diff --git a/arch/arm/dts/twl4030.dtsi b/arch/arm/dts/twl4030.dtsi
new file mode 100644
index 0000000..6cb0a01
--- /dev/null
+++ b/arch/arm/dts/twl4030.dtsi
@@ -0,0 +1,161 @@
+/*
+ * 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.
+ */
+
+/*
+ * Integrated Power Management Chip
+ */
+&twl {
+       compatible = "ti,twl4030";
+       interrupt-controller;
+       #interrupt-cells = <1>;
+
+       rtc {
+               compatible = "ti,twl4030-rtc";
+               interrupts = <11>;
+       };
+
+       charger: bci {
+               compatible = "ti,twl4030-bci";
+               interrupts = <9>, <2>;
+               bci3v1-supply = <&vusb3v1>;
+       };
+
+       watchdog {
+               compatible = "ti,twl4030-wdt";
+       };
+
+       vaux1: regulator-vaux1 {
+               compatible = "ti,twl4030-vaux1";
+       };
+
+       vaux2: regulator-vaux2 {
+               compatible = "ti,twl4030-vaux2";
+       };
+
+       vaux3: regulator-vaux3 {
+               compatible = "ti,twl4030-vaux3";
+       };
+
+       vaux4: regulator-vaux4 {
+               compatible = "ti,twl4030-vaux4";
+       };
+
+       vcc: regulator-vdd1 {
+               compatible = "ti,twl4030-vdd1";
+               regulator-min-microvolt = <600000>;
+               regulator-max-microvolt = <1450000>;
+       };
+
+       vdac: regulator-vdac {
+               compatible = "ti,twl4030-vdac";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       vio: regulator-vio {
+               compatible = "ti,twl4030-vio";
+       };
+
+       vintana1: regulator-vintana1 {
+               compatible = "ti,twl4030-vintana1";
+       };
+
+       vintana2: regulator-vintana2 {
+               compatible = "ti,twl4030-vintana2";
+       };
+
+       vintdig: regulator-vintdig {
+               compatible = "ti,twl4030-vintdig";
+       };
+
+       vmmc1: regulator-vmmc1 {
+               compatible = "ti,twl4030-vmmc1";
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <3150000>;
+       };
+
+       vmmc2: regulator-vmmc2 {
+               compatible = "ti,twl4030-vmmc2";
+               regulator-min-microvolt = <1850000>;
+               regulator-max-microvolt = <3150000>;
+       };
+
+       vusb1v5: regulator-vusb1v5 {
+               compatible = "ti,twl4030-vusb1v5";
+       };
+
+       vusb1v8: regulator-vusb1v8 {
+               compatible = "ti,twl4030-vusb1v8";
+       };
+
+       vusb3v1: regulator-vusb3v1 {
+               compatible = "ti,twl4030-vusb3v1";
+       };
+
+       vpll1: regulator-vpll1 {
+               compatible = "ti,twl4030-vpll1";
+       };
+
+       vpll2: regulator-vpll2 {
+               compatible = "ti,twl4030-vpll2";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       vsim: regulator-vsim {
+               compatible = "ti,twl4030-vsim";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3000000>;
+       };
+
+       twl_gpio: gpio {
+               compatible = "ti,twl4030-gpio";
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+       };
+
+       usb2_phy: twl4030-usb {
+               compatible = "ti,twl4030-usb";
+               interrupts = <10>, <4>;
+               usb1v5-supply = <&vusb1v5>;
+               usb1v8-supply = <&vusb1v8>;
+               usb3v1-supply = <&vusb3v1>;
+               usb_mode = <1>;
+               #phy-cells = <0>;
+       };
+
+       twl_pwm: pwm {
+               compatible = "ti,twl4030-pwm";
+               #pwm-cells = <2>;
+       };
+
+       twl_pwmled: pwmled {
+               compatible = "ti,twl4030-pwmled";
+               #pwm-cells = <2>;
+       };
+
+       twl_pwrbutton: pwrbutton {
+               compatible = "ti,twl4030-pwrbutton";
+               interrupts = <8>;
+       };
+
+       twl_keypad: keypad {
+               compatible = "ti,twl4030-keypad";
+               interrupts = <1>;
+               keypad,num-rows = <8>;
+               keypad,num-columns = <8>;
+       };
+
+       twl_madc: madc {
+               compatible = "ti,twl4030-madc";
+               interrupts = <3>;
+               #io-channel-cells = <1>;
+       };
+};
diff --git a/arch/arm/dts/twl4030_omap3.dtsi b/arch/arm/dts/twl4030_omap3.dtsi
new file mode 100644
index 0000000..f9aaa53
--- /dev/null
+++ b/arch/arm/dts/twl4030_omap3.dtsi
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2013 Linaro, Ltd.
+ *
+ * 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.
+ */
+
+&twl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&twl4030_pins &twl4030_vpins>;
+};
+
+&omap3_pmx_core {
+       /*
+        * On most OMAP3 platforms, the twl4030 IRQ line is connected
+        * to the SYS_NIRQ line on OMAP.  Therefore, configure the
+        * defaults for the SYS_NIRQ pin here.
+        */
+       twl4030_pins: pinmux_twl4030_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21e0, PIN_INPUT_PULLUP | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* sys_nirq.sys_nirq */
+               >;
+       };
+};
+
+/*
+ * If your board is not using the I2C4 pins with twl4030, then don't include
+ * this file. For proper idle mode signaling with sys_clkreq and sys_off_mode
+ * pins we need to configure I2C4, or else use the legacy sys_nvmode1 and
+ * sys_nvmode2 signaling.
+ */
+&omap3_pmx_wkup {
+       twl4030_vpins: pinmux_twl4030_vpins {
+               pinctrl-single,pins = <
+                       OMAP3_WKUP_IOPAD(0x2a00, PIN_INPUT | MUX_MODE0)         /* i2c4_scl.i2c4_scl */
+                       OMAP3_WKUP_IOPAD(0x2a02, PIN_INPUT | MUX_MODE0)         /* i2c4_sda.i2c4_sda */
+                       OMAP3_WKUP_IOPAD(0x2a06, PIN_OUTPUT | MUX_MODE0)        /* sys_clkreq.sys_clkreq */
+                       OMAP3_WKUP_IOPAD(0x2a18, PIN_OUTPUT | MUX_MODE0)        /* sys_off_mode.sys_off_mode */
+               >;
+       };
+};