From 8ac614fe96e940ecd6d5bd2447e3ada9d59f3902 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
Date: Thu, 19 Mar 2020 00:43:14 +0100
Subject: [PATCH] sunxi: 5.4: dts: a64: olinuxino: add bank supply regulators
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

This is backport of v5.6 patch.

Allwinner A64 SoC has separate supplies for PC, PD, PE, PG and PL. This
patch adds regulators for them to the pinctrl node.

Exception is PL which is used by the RSB bus. To avoid circular
dependencies, VCC-PL is omitted.

On boards with eMMC, VCC-PC is supplied by ELDO1, instead of DCDC1.

Signed-off-by: Petr Å tetiar <ynezz@true.cz>
---
 ...ner-a64-olinuxino-Add-bank-supply-re.patch | 62 +++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 target/linux/sunxi/patches-5.4/410-v5.6-arm64-dts-allwinner-a64-olinuxino-Add-bank-supply-re.patch

diff --git a/target/linux/sunxi/patches-5.4/410-v5.6-arm64-dts-allwinner-a64-olinuxino-Add-bank-supply-re.patch b/target/linux/sunxi/patches-5.4/410-v5.6-arm64-dts-allwinner-a64-olinuxino-Add-bank-supply-re.patch
new file mode 100644
index 0000000000..f844301a8a
--- /dev/null
+++ b/target/linux/sunxi/patches-5.4/410-v5.6-arm64-dts-allwinner-a64-olinuxino-Add-bank-supply-re.patch
@@ -0,0 +1,62 @@
+From f0c3b29f56f0a946df4941edfe2d98e3e766c30f Mon Sep 17 00:00:00 2001
+From: Stefan Mavrodiev <stefan@olimex.com>
+Date: Fri, 29 Nov 2019 13:39:40 +0200
+Subject: [PATCH] arm64: dts: allwinner: a64: olinuxino: Add bank supply
+ regulators
+
+Allwinner A64 SoC has separate supplies for PC, PD, PE, PG and PL. This
+patch adds regulators for them to the pinctrl node.
+
+Exception is PL which is used by the RSB bus. To avoid circular
+dependencies, VCC-PL is omitted.
+
+On boards with eMMC, VCC-PC is supplied by ELDO1, instead of DCDC1.
+
+Signed-off-by: Stefan Mavrodiev <stefan@olimex.com>
+[Maxime: Changed the r_pio comment a bit]
+Signed-off-by: Maxime Ripard <maxime@cerno.tech>
+---
+ .../dts/allwinner/sun50i-a64-olinuxino-emmc.dts |  4 ++++
+ .../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 17 +++++++++++++++++
+ 2 files changed, 21 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
+index 96ab0227e82d..a1629688e694 100644
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
+@@ -21,3 +21,7 @@
+ 	cap-mmc-hw-reset;
+ 	status = "okay";
+ };
++
++&pio {
++	vcc-pc-supply = <&reg_eldo1>;
++};
+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
+index 01a9a52edae4..3e026a95a58a 100644
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
+@@ -163,6 +163,23 @@
+ 	status = "okay";
+ };
+ 
++&pio {
++	vcc-pc-supply = <&reg_dcdc1>;
++	vcc-pd-supply = <&reg_dcdc1>;
++	vcc-pe-supply = <&reg_aldo1>;
++	vcc-pg-supply = <&reg_dldo4>;
++};
++
++&r_pio {
++	/*
++	 * FIXME: We can't add that supply for now since it would
++	 * create a circular dependency between pinctrl, the regulator
++	 * and the RSB Bus.
++	 *
++	 * vcc-pl-supply = <&reg_aldo2>;
++	 */
++};
++
+ &r_rsb {
+ 	status = "okay";
+ 
-- 
2.30.2