The AXP809 PMIC is the primary PMIC. It provides various supply voltages
for the SoC and other peripherals. The PMIC's interrupt line is
connected to NMI pin of the SoC.

Signed-off-by: Chen-Yu Tsai <[email protected]>
---
 arch/arm/boot/dts/sun9i-a80-optimus.dts | 121 +++++++++++++++++++++++++++++++-
 1 file changed, 119 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts 
b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 958160e40fd0..7f6bf6138966 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -161,7 +161,7 @@
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_optimus>;
-       vmmc-supply = <&reg_vcc3v0>;
+       vmmc-supply = <&reg_dcdc1>;
        bus-width = <4>;
        cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH8 */
        cd-inverted;
@@ -171,7 +171,7 @@
 &mmc2 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_8bit_pins>;
-       vmmc-supply = <&reg_vcc3v0>;
+       vmmc-supply = <&reg_dcdc1>;
        bus-width = <8>;
        non-removable;
        cap-mmc-hw-reset;
@@ -204,6 +204,123 @@
 
 &r_rsb {
        status = "okay";
+
+       axp809: pmic@3a3 {
+               reg = <0x3a3>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp809.dtsi"
+
+&reg_aldo1 {
+       /* TODO: This should be handled by the USB PHY driver */
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc33-usbh";
+};
+
+&reg_aldo2 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "vcc-pb-io-cam";
+};
+
+&reg_dc5ldo {
+       regulator-always-on;
+       regulator-min-microvolt = <800000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpus-09-usbh";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-3v";
+};
+
+&reg_dcdc2 {
+       regulator-min-microvolt = <800000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-gpu";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <800000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpua";
+};
+
+&reg_dcdc4 {
+       regulator-always-on;
+       regulator-min-microvolt = <800000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-sys-usb0-hdmi";
+};
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1425000>;
+       regulator-max-microvolt = <1575000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dldo1 {
+       /*
+        * The WiFi chip supports a wide range (3.0 ~ 4.8V) of voltages,
+        * and so does this regulator (3.0 ~ 4.2V), but Allwinner SDK
+        * always sets it to 3.3V.
+        */
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi";
+};
+
+&reg_dldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pl";
+};
+
+&reg_eldo1 {
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-dvdd-cam";
+};
+
+&reg_eldo2 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "vcc-pe";
+};
+
+&reg_eldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pm-codec-io1";
+};
+
+&reg_ldo_io0 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pg";
+};
+
+&reg_ldo_io1 {
+       regulator-min-microvolt = <2500000>;
+       regulator-max-microvolt = <2500000>;
+       regulator-name = "vcc-pa-gmac-2v5";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc-vdd1v8-io";
 };
 
 &uart0 {
-- 
2.7.0

Reply via email to