Add device tree node for ATC2603C PMIC and remove the 'fixed-3.1V'
dummy regulator used for the uSD supply.

Additionally, add 'SYSPWR' fixed regulator and provide cpu0 supply.

Signed-off-by: Cristian Ciocaltea <cristian.ciocal...@gmail.com>
---
Please note the patch depends on the ATC260x PMIC support which is queued
for merging in v5.13:

https://lore.kernel.org/lkml/cover.1611653995.git.cristian.ciocal...@gmail.com/
https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git/log/?h=for-mfd-next&qt=range&q=a38fd8748464831584a19438cbb3082b5a2dab15..eac013a0b7041f5cfc8feedf429a767675350102

 arch/arm/boot/dts/owl-s500-roseapplepi.dts | 132 ++++++++++++++++++++-
 1 file changed, 126 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/owl-s500-roseapplepi.dts 
b/arch/arm/boot/dts/owl-s500-roseapplepi.dts
index ff91561ca99c..b8c5db2344aa 100644
--- a/arch/arm/boot/dts/owl-s500-roseapplepi.dts
+++ b/arch/arm/boot/dts/owl-s500-roseapplepi.dts
@@ -2,7 +2,7 @@
 /*
  * Roseapple Pi
  *
- * Copyright (C) 2020 Cristian Ciocaltea <cristian.ciocal...@gmail.com>
+ * Copyright (C) 2020-2021 Cristian Ciocaltea <cristian.ciocal...@gmail.com>
  */
 
 /dts-v1/;
@@ -27,20 +27,140 @@ memory@0 {
                reg = <0x0 0x80000000>; /* 2GB */
        };
 
-       /* Fixed regulator used in the absence of PMIC */
-       sd_vcc: sd-vcc {
+       syspwr: regulator-5v0 {
                compatible = "regulator-fixed";
-               regulator-name = "fixed-3.1V";
-               regulator-min-microvolt = <3100000>;
-               regulator-max-microvolt = <3100000>;
+               regulator-name = "SYSPWR";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
                regulator-always-on;
        };
 };
 
+&cpu0 {
+       cpu0-supply = <&vdd_cpu>;
+};
+
 &i2c0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;
+
+       atc260x: pmic@65 {
+               compatible = "actions,atc2603c";
+               reg = <0x65>;
+               interrupt-parent = <&sirq>;
+               interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
+
+               reset-time-sec = <6>;
+
+               regulators {
+                       compatible = "actions,atc2603c-regulator";
+
+                       dcdc1-supply = <&syspwr>;
+                       dcdc2-supply = <&syspwr>;
+                       dcdc3-supply = <&syspwr>;
+                       ldo1-supply = <&syspwr>;
+                       ldo2-supply = <&syspwr>;
+                       ldo3-supply = <&syspwr>;
+                       ldo5-supply = <&syspwr>;
+                       ldo6-supply = <&syspwr>;
+                       ldo7-supply = <&syspwr>;
+                       ldo8-supply = <&syspwr>;
+                       ldo11-supply = <&syspwr>;
+                       ldo12-supply = <&syspwr>;
+                       switchldo1-supply = <&vcc>;
+
+                       vdd_cpu: dcdc1 {
+                               regulator-name = "VDD_CPU";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1400000>;
+                               regulator-always-on;
+                       };
+
+                       vddq: dcdc2 {
+                               regulator-name = "VDDQ";
+                               regulator-min-microvolt = <1300000>;
+                               regulator-max-microvolt = <2150000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vcc: dcdc3 {
+                               regulator-name = "VCC";
+                               regulator-min-microvolt = <2600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_3v3: ldo1 {
+                               regulator-name = "VCC_3V3";
+                               regulator-min-microvolt = <2600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       avcc: ldo2 {
+                               regulator-name = "AVCC";
+                               regulator-min-microvolt = <2600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vdd_1v8: ldo3 {
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_3v1: ldo5 {
+                               regulator-name = "VCC_3V1";
+                               regulator-min-microvolt = <2600000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       avdd: ldo6 {
+                               regulator-name = "AVDD";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1400000>;
+                               regulator-always-on;
+                       };
+
+                       sens_1v8: ldo7 {
+                               regulator-name = "SENS_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo8: ldo8 {
+                               regulator-name = "LDO8";
+                               regulator-min-microvolt = <2300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       svcc: ldo11 {
+                               regulator-name = "SVCC";
+                               regulator-min-microvolt = <2600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       rtc_vdd: ldo12 {
+                               regulator-name = "RTC_VDD";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       sd_vcc: switchldo1 {
+                               regulator-name = "SD_VCC";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
 };
 
 &i2c1 {
-- 
2.30.2

Reply via email to