summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/mfd/twl-family.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/devicetree/bindings/mfd/twl-family.txt')
-rw-r--r--Documentation/devicetree/bindings/mfd/twl-family.txt457
1 files changed, 457 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/mfd/twl-family.txt b/Documentation/devicetree/bindings/mfd/twl-family.txt
new file mode 100644
index 000000000000..65f83ab86038
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/twl-family.txt
@@ -0,0 +1,457 @@
+Texas Instruments TWL family
+----------------------------
+
+The TWLs are i2c connected Integrated Power Management Chips.
+Some version contain much more analog function like
+USB transceiver or Audio amplifier.
+
+The TWL family provide have an integrated interrupt controller
+used by the internal subcomponents.
+
+Required properties:
+- compatible: Should contain:
+ * "ti,twl4030": For integrated power-management/audio CODEC device
+ used in OMAP3 boards.
+ * "ti,twl6030": For integrated power-management device used in OMAP4
+ based boards.
+- interrupts: interrupt-specifier for the sole interrupt generated by
+ the device.
+- interrupt-controller : Since the twl support several interrupts internally,
+ it is considered as an interrupt controller cascaded to the SoC one.
+- #interrupt-cells: must be <1>
+
+Optional properties:
+- interrupt-parent : The parent interrupt controller. This property is
+ optional if the implicit interrupt controller is correct.
+
+Optional nodes:
+- Child nodes contained in the twl. The twl family is made of several
+ variants that support a different number of features. The children
+ nodes will thus depend of the capability of the variant.
+
+TWL Regulator
+-------------
+
+Required properties:
+For twl6030 regulators/LDOs
+- compatible:
+ - "ti,twl6030-vaux1" for VAUX1 LDO
+ - "ti,twl6030-vaux2" for VAUX2 LDO
+ - "ti,twl6030-vaux3" for VAUX3 LDO
+ - "ti,twl6030-vmmc" for VMMC LDO
+ - "ti,twl6030-vpp" for VPP LDO
+ - "ti,twl6030-vusim" for VUSIM LDO
+ - "ti,twl6030-vana" for VANA LDO
+ - "ti,twl6030-vcxio" for VCXIO LDO
+ - "ti,twl6030-vdac" for VDAC LDO
+ - "ti,twl6030-vusb" for VUSB LDO
+ - "ti,twl6030-v1v8" for V1V8 LDO
+ - "ti,twl6030-v2v1" for V2V1 LDO
+ - "ti,twl6030-vdd1" for VDD1 SMPS
+ - "ti,twl6030-vdd2" for VDD2 SMPS
+ - "ti,twl6030-vdd3" for VDD3 SMPS
+For twl6032 regulators/LDOs
+- compatible:
+ - "ti,twl6032-ldo1" for LDO1 LDO
+ - "ti,twl6032-ldo2" for LDO2 LDO
+ - "ti,twl6032-ldo3" for LDO3 LDO
+ - "ti,twl6032-ldo4" for LDO4 LDO
+ - "ti,twl6032-ldo5" for LDO5 LDO
+ - "ti,twl6032-ldo6" for LDO6 LDO
+ - "ti,twl6032-ldo7" for LDO7 LDO
+ - "ti,twl6032-ldoln" for LDOLN LDO
+ - "ti,twl6032-ldousb" for LDOUSB LDO
+ - "ti,twl6032-smps3" for SMPS3 SMPS
+ - "ti,twl6032-smps4" for SMPS4 SMPS
+ - "ti,twl6032-vio" for VIO SMPS
+For twl4030 regulators/LDOs
+- compatible:
+ - "ti,twl4030-vaux1" for VAUX1 LDO
+ - "ti,twl4030-vaux2" for VAUX2 LDO
+ - "ti,twl5030-vaux2" for VAUX2 LDO
+ - "ti,twl4030-vaux3" for VAUX3 LDO
+ - "ti,twl4030-vaux4" for VAUX4 LDO
+ - "ti,twl4030-vmmc1" for VMMC1 LDO
+ - "ti,twl4030-vmmc2" for VMMC2 LDO
+ - "ti,twl4030-vpll1" for VPLL1 LDO
+ - "ti,twl4030-vpll2" for VPLL2 LDO
+ - "ti,twl4030-vsim" for VSIM LDO
+ - "ti,twl4030-vdac" for VDAC LDO
+ - "ti,twl4030-vintana2" for VINTANA2 LDO
+ - "ti,twl4030-vio" for VIO LDO
+ - "ti,twl4030-vdd1" for VDD1 SMPS
+ - "ti,twl4030-vdd2" for VDD2 SMPS
+ - "ti,twl4030-vintana1" for VINTANA1 LDO
+ - "ti,twl4030-vintdig" for VINTDIG LDO
+ - "ti,twl4030-vusb1v5" for VUSB1V5 LDO
+ - "ti,twl4030-vusb1v8" for VUSB1V8 LDO
+ - "ti,twl4030-vusb3v1" for VUSB3V1 LDO
+
+Optional properties:
+- Any optional property defined in bindings/regulator/regulator.txt
+
+TWL RTC
+-------
+
+Required properties:
+- compatible : Should be twl4030-rtc
+
+TWL PWM
+-------
+
+Supported PWMs:
+On TWL4030 series: PWM1 and PWM2
+On TWL6030 series: PWM0 and PWM1
+
+Required properties:
+- compatible: Should contain one of:
+ * "ti,twl4030-pwm"
+ * "ti,twl6030-pwm"
+- #pwm-cells: should be 2. See Documentation/devicetree/bindings/pwm/pwm.txt
+ for a description of the cells format. The binding follows the "typical"
+ encoding.
+
+TWL PWM LED
+-----------
+
+Supported PWMs:
+On TWL4030 series: PWMA and PWMB (connected to LEDA and LEDB terminals)
+On TWL6030 series: LED PWM (mainly used as charging indicator LED)
+
+Required properties:
+- compatible: Should contain one of:
+ * "ti,twl4030-pwmled"
+ * "ti,twl6030-pwmled"
+- #pwm-cells: should be 2. See Documentation/devicetree/bindings/pwm/pwm.txt
+ for a description of the cells format. The binding follows the "typical"
+ encoding.
+
+TWL4030 USB PHY AND COMPARATOR
+------------------------------
+
+Required properties:
+ - compatible : Should contain "ti,twl4030-usb"
+ - interrupts: A list of interrupt-specifiers:
+ [1] The OTG interrupt
+ [2] The VBUS interrupt (optional)
+ - vusb1v5-supply: phandle to the TWL's usb 1.5V regulator device
+ - vusb1v8-supply: phandle to the TWL's usb 1.8V regulator device
+ - vusb3v1-supply: phandle to the TWL's usb 3.1V regulator device
+ - usb_mode : The mode used by the phy to connect to the controller. <1>
+ specifies "ULPI" mode and <2> specifies "CEA2011_3PIN" mode.
+
+TWL6030 USB COMPARATOR
+----------------------
+
+Required properties:
+ - compatible : Should contain "ti,twl6030-usb"
+ - interrupts : Two interrupt numbers to the cpu should be specified. First
+ interrupt number is the otg interrupt number that raises ID interrupts when
+ the controller has to act as host and the second interrupt number is the
+ usb interrupt number that raises VBUS interrupts when the controller has to
+ act as device
+ - usb-supply : phandle to the regulator device tree node. It should be vusb
+ if it is twl6030 or ldousb if it is twl6032 subclass.
+
+TWL4030 GPIO Controller
+-----------------------
+
+Required properties:
+- compatible: Should contain "ti,twl4030-gpio"
+- #gpio-cells : Should be two.
+ - first cell is the pin number
+ - second cell is a bit field of flags, as defined in <dt-bindings/gpio/gpio.h>
+- gpio-controller : Marks the device node as a GPIO controller.
+- #interrupt-cells : Should be 2.
+ The first cell is the GPIO number.
+ The second cell is not used.
+- interrupt-controller: Mark the device node as an interrupt controller
+- ti,use-leds : Boolean; enables LEDA and LEDB outputs if set
+- ti,debounce : 32 Bit Unsigned; if n-th bit is set, debounces GPIO-n
+- ti,mmc-cd : 32 Bit Unsigned; if n-th bit is set, GPIO-n controls VMMC(n+1)
+- ti,pullups : 32 Bit Unsigned; if n-th bit is set, set a pullup on GPIO-n
+- ti,pulldowns : 32 Bit Unsigned; if n-th bit is set, set a pulldown on GPIO-n
+
+TWL4030 Audio
+-------------
+
+The audio module inside the TWL family consist of an audio codec and
+a vibrator driver.
+
+Required properties:
+- compatible : Should contain "ti,twl4030-audio"
+
+Optional properties:
+- ti,enable-vibra : Should be set to <1> if the vibra functionality is used.
+ if missing or it is 0, the vibra functionality is disabled.
+
+The node may contain a subnode named "codec", which may have the
+following properties:
+
+- ti,digimic_delay: Delay need after enabling the digimic to reduce artifacts
+ from the start of the recorded sample (in ms)
+- ti,ramp_delay_value: HS ramp delay configuration to reduce pop noise
+- ti,hs_extmute: 32 Bit Unsigned; Use external mute for HS pop reduction
+- ti,hs_extmute_gpio: GPIO phandle; Use external GPIO to control the external mute
+- ti,offset_cncl_path: Offset cancellation path selection, refer to TRM for the
+ valid values.
+
+TWL4030 Power
+-------------
+
+The power management module inside the TWL family provides several facilities
+to control the power resources, including power scripts. For now, the binding
+only supports the complete shutdown of the system after poweroff.
+
+Required properties:
+- compatible : Should contain "ti,twl4030-power"
+
+Optional properties:
+- ti,use_poweroff: With this flag, the chip will initiates an ACTIVE-to-OFF or
+ SLEEP-to-OFF transition when the system poweroffs.
+
+TWL4030 Watchdog
+----------------
+
+Required properties:
+- compatible: Should contain "ti,twl4030-wdt"
+
+TWL4030 Power Button
+--------------------
+
+This module provides a simple power button event via an Interrupt.
+
+Required properties:
+- compatible: Should contain "ti,twl4030-pwrbutton"
+- interrupts: Should be one of the following
+ - <8>: For controllers compatible with twl4030
+
+TWL4030 Keypad
+--------------
+
+TWL4030's Keypad controller is used to interface a SoC with a matrix-type
+keypad device. The keypad controller supports multiple row and column lines.
+A key can be placed at each intersection of a unique row and a unique column.
+The keypad controller can sense a key-press and key-release and report the
+event using a interrupt to the cpu.
+
+This binding is based on the matrix-keymap binding with the following
+changes:
+
+ * keypad,num-rows is required.
+ * keypad,num-columns is required.
+
+Required SoC Specific Properties:
+- compatible: Should contain "ti,twl4030-keypad"
+- interrupt: Should be one of the following
+ - <1>: For controllers compatible with twl4030 keypad controller.
+
+Example
+-------
+
+This is an example for TWL4030 binding (Nokia N900):
+
+&i2c {
+ twl@48 {
+ compatible = "ti,twl4030";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ reg = <0x48>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+
+ rtc {
+ compatible = "ti,twl4030-rtc";
+ interrupts = <11>;
+ };
+
+ watchdog {
+ compatible = "ti,twl4030-wdt";
+ };
+
+ vaux1: regulator-vaux1 {
+ compatible = "ti,twl4030-vaux1";
+
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on; /* due battery cover sensor */
+ };
+
+ vaux2: regulator-vaux2 {
+ compatible = "ti,twl4030-vaux2";
+
+ regulator-name = "VCSI";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vaux3: regulator-vaux3 {
+ compatible = "ti,twl4030-vaux3";
+
+ regulator-name = "VMMC2_30";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <3000000>;
+ };
+
+ vaux4: regulator-vaux4 {
+ compatible = "ti,twl4030-vaux4";
+
+ regulator-name = "VCAM_ANA_28";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ 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";
+
+ regulator-name = "VIO";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vintana1: regulator-vintana1 {
+ compatible = "ti,twl4030-vintana1";
+
+ regulator-name = "VINTANA1";
+ /* fixed to 1500000 */
+ regulator-always-on;
+ };
+
+ vintana2: regulator-vintana2 {
+ compatible = "ti,twl4030-vintana2";
+
+ regulator-name = "VINTANA2";
+ regulator-min-microvolt = <2750000>;
+ regulator-max-microvolt = <2750000>;
+ regulator-always-on;
+ };
+
+ vintdig: regulator-vintdig {
+ compatible = "ti,twl4030-vintdig";
+
+ regulator-name = "VINTDIG";
+ /* fixed to 1500000 */
+ regulator-always-on;
+ };
+
+ vmmc1: regulator-vmmc1 {
+ compatible = "ti,twl4030-vmmc1";
+
+ regulator-name = "VMMC1";
+ regulator-min-microvolt = <1850000>;
+ regulator-max-microvolt = <3150000>;
+ };
+
+ vmmc2: regulator-vmmc2 {
+ compatible = "ti,twl4030-vmmc2";
+
+ regulator-name = "V28_A";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-always-on; /* due VIO leak to AIC34 VDDs */
+ };
+
+ 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";
+
+ regulator-name = "VPLL";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ vpll2: regulator-vpll2 {
+ compatible = "ti,twl4030-vpll2";
+
+ regulator-name = "VSDI_CSI";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ vsim: regulator-vsim {
+ compatible = "ti,twl4030-vsim";
+
+ regulator-name = "VMMC2_IO_18";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ 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>;
+ };
+
+ twl_pwm: pwm {
+ compatible = "ti,twl4030-pwm";
+ #pwm-cells = <2>;
+ };
+
+ twl_pwmled: pwmled {
+ compatible = "ti,twl4030-pwmled";
+ #pwm-cells = <2>;
+ };
+
+ twl_keypad: keypad {
+ compatible = "ti,twl4030-keypad";
+ interrupts = <1>;
+ keypad,num-rows = <8>;
+ keypad,num-columns = <8>;
+
+ linux,keymap = < 0x00000010 /* KEY_Q */
+ 0x00010018 /* KEY_O */
+ 0x00020019 /* KEY_P */
+ /* ... */
+ >;
+ };
+
+ twl_pwrbutton: pwrbutton {
+ compatible = "ti,twl4030-pwrbutton";
+ interrupts = <8>;
+ };
+
+ twl_audio: audio {
+ compatible = "ti,twl4030-audio";
+ ti,enable-vibra = <1>;
+ };
+ };
+};