ARM: dts: sun6i: Add pmic / regulator nodes to Mele M9 dts
authorHans de Goede <hdegoede@redhat.com>
Sun, 12 Jun 2016 11:07:01 +0000 (13:07 +0200)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 4 Jul 2016 19:18:04 +0000 (21:18 +0200)
Add pmic / regulator nodes to Mele M9 dts.

Note both reg_usb1_vbus and reg_dldo4 need to be on for the hub attached
to usb1 to work, and we can list only one usb1_vbus-supply, so dldo4 is
marked as regulator-always-on.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun6i-a31-m9.dts

index 66d29b866abe4dfd04e2d43d2224d2fc375b0b3c..29016a13a2c1e7b25438951f836add9d2f818b87 100644 (file)
        };
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc3>;
+};
+
 &ehci0 {
        status = "okay";
 };
@@ -85,6 +89,7 @@
        pinctrl-0 = <&gmac_pins_mii_a>;
        phy = <&phy1>;
        phy-mode = "mii";
+       phy-supply = <&reg_dldo1>;
        status = "okay";
 
        phy1: ethernet-phy@1 {
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>;
-       vmmc-supply = <&reg_vcc3v3>;
+       vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
        cd-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
        cd-inverted;
        status = "okay";
 };
 
+&p2wi {
+       status = "okay";
+
+       axp22x: pmic@68 {
+               compatible = "x-powers,axp221";
+               reg = <0x68>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp22x.dtsi"
+
 &pio {
        led_pins_m9: led_pins@0 {
                allwinner,pins = "PH13";
        };
 };
 
+&reg_aldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <2700000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "avcc";
+};
+
+&reg_dc5ldo {
+       regulator-always-on;
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-cpus"; /* This is an educated guess */
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-gpu";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc4 {
+       regulator-always-on;
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-sys-dll";
+};
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-ethernet-phy";
+};
+
+/*
+ * Both reg_usb1_vbus and reg_dldo4 need to be on for the hub attached
+ * to usb1 to work, and we can list only one usb1_vbus-supply, so dldo4 is
+ * marked as regulator-always-on.
+ */
+&reg_dldo4 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-usb-hub";
+};
+
 &reg_usb1_vbus {
        pinctrl-names = "default";
        pinctrl-0 = <&usb1_vbus_pin_m9>;
 
 &usbphy {
        usb1_vbus-supply = <&reg_usb1_vbus>;
+       usb2_vbus-supply = <&reg_aldo1>;
        status = "okay";
 };