ARM: dts: Configure regulators for droid 4
authorTony Lindgren <tony@atomide.com>
Mon, 6 Mar 2017 04:11:56 +0000 (20:11 -0800)
committerTony Lindgren <tony@atomide.com>
Mon, 6 Mar 2017 16:04:30 +0000 (08:04 -0800)
With drivers/mfd/motorola-cpcap.c and drivers/regulator/cpcap-regulator.c
we can now configure proper regulators for droid 4.

Let's add regulator voltages and switch over MMC, eMMC and WLAN to use
the CPCAP regulators.

Cc: devicetree@vger.kernel.org
Cc: Marcel Partap <mpartap@gmx.net>
Cc: Michael Scott <michael.scott@linaro.org>
Tested-By: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap4-droid4-xt894.dts

diff --git a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
new file mode 100644 (file)
index 0000000..b7e1246
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * Common CPCAP configuration used on Motorola phones
+ *
+ * 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.
+ */
+
+&mcspi1 {
+       cpcap: pmic@0 {
+               compatible = "motorola,cpcap", "st,6556002";
+               reg = <0>;      /* cs0 */
+               interrupt-parent = <&gpio1>;
+               interrupts = <7 IRQ_TYPE_EDGE_RISING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <3000000>;
+               spi-cs-high;
+
+               cpcap_regulator: regulator {
+                       compatible = "motorola,mapphone-cpcap-regulator";
+
+                       cpcap_regulators: regulators {
+                       };
+               };
+       };
+};
+
+&cpcap_regulators {
+       sw5: SW5 {
+               regulator-min-microvolt = <5050000>;
+               regulator-max-microvolt = <5050000>;
+               regulator-enable-ramp-delay = <50000>;
+               regulator-boot-on;
+       };
+
+       vcam: VCAM {
+               regulator-min-microvolt = <2900000>;
+               regulator-max-microvolt = <2900000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       /* Used by DSS */
+       vcsi: VCSI {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <1000>;
+               regulator-boot-on;
+       };
+
+       vdac: VDAC {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vdig: VDIG {
+               regulator-min-microvolt = <1875000>;
+               regulator-max-microvolt = <1875000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vfuse: VFUSE {
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <3150000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vhvio: VHVIO {
+               regulator-min-microvolt = <2775000>;
+               regulator-max-microvolt = <2775000>;
+               regulator-enable-ramp-delay = <1000>;
+               regulator-always-on;
+       };
+
+       /* Used by eMMC at mmc2 */
+       vsdio: VSDIO {
+               regulator-min-microvolt = <2900000>;
+               regulator-max-microvolt = <2900000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vpll: VPLL {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <100>;
+       };
+
+       vrf1: VRF1 {
+               regulator-min-microvolt = <2775000>;
+               regulator-max-microvolt = <2775000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vrf2: VRF2 {
+               regulator-min-microvolt = <2775000>;
+               regulator-max-microvolt = <2775000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vrfref: VRFREF {
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2775000>;
+               regulator-enable-ramp-delay = <100>;
+       };
+
+       vwlan1: VWLAN1 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1900000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vwlan2: VWLAN2 {
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vsim: VSIM {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2900000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       /* Used by micro-SDIO at mmc1 */
+       vsimcard: VSIMCARD {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2900000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vvib: VVIB {
+               regulator-min-microvolt = <1300000>;
+               regulator-max-microvolt = <3000000>;
+               regulator-enable-ramp-delay = <500>;
+       };
+
+       vusb: VUSB {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+
+       vaudio: VAUDIO {
+               regulator-min-microvolt = <2775000>;
+               regulator-max-microvolt = <2775000>;
+               regulator-enable-ramp-delay = <1000>;
+       };
+};
index 2140be8..e5b56fc 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <dt-bindings/input/input.h>
 #include "omap443x.dtsi"
+#include "motorola-cpcap-mapphone.dtsi"
 
 / {
        model = "Motorola Droid 4 XT894";
                reg = <0x80000000 0x3fd00000>;  /* 1021 MB */
        };
 
-       /* CPCAP really supports 1650000 to 3400000 range */
-       vmmc: regulator-mmc {
-               compatible = "regulator-fixed";
-               regulator-name = "vmmc";
-               regulator-min-microvolt = <3000000>;
-               regulator-max-microvolt = <3000000>;
-               regulator-always-on;
-       };
-
-       /* CPCAP really supports 3000000 to 3100000 range */
-       vemmc: regulator-emmc {
-               compatible = "regulator-fixed";
-               regulator-name = "vemmc";
-               regulator-min-microvolt = <3000000>;
-               regulator-max-microvolt = <3000000>;
-               regulator-always-on;
-       };
-
-       /* CPCAP really supports 1650000 to 1950000 range */
+       /* This is probably coming straight from the battery.. */
        wl12xx_vmmc: regulator-wl12xx {
                compatible = "regulator-fixed";
                regulator-name = "vwl1271";
 };
 
 &mmc1 {
-       vmmc-supply = <&vmmc>;
+       vmmc-supply = <&vsimcard>;
        bus-width = <4>;
        cd-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */
 };
 
 &mmc2 {
-       vmmc-supply = <&vemmc>;
+       vmmc-supply = <&vsdio>;
        bus-width = <8>;
        non-removable;
 };