Re: [PATCH v5 16/16] arm64: allwinner: A100: add support for Allwinner Perf1 board

2020-08-25 Thread Maxime Ripard
On Fri, Jul 24, 2020 at 03:21:05PM +0800, Frank Lee wrote:
> From: Yangtao Li 
> 
> A100 perf1 is an Allwinner A100-based SBC, with the following features:
> 
> - 1GiB DDR3 DRAM
> - AXP803 PMIC
> - 2 USB 2.0 ports
> - MicroSD slot and on-board eMMC module
> - on-board Nand flash
> - ···
> 
> Adds initial support for it, including UART and PMU.
> 
> Signed-off-by: Yangtao Li 

Applied thanks!
Maxime


signature.asc
Description: PGP signature


[PATCH v5 16/16] arm64: allwinner: A100: add support for Allwinner Perf1 board

2020-07-24 Thread Frank Lee
From: Yangtao Li 

A100 perf1 is an Allwinner A100-based SBC, with the following features:

- 1GiB DDR3 DRAM
- AXP803 PMIC
- 2 USB 2.0 ports
- MicroSD slot and on-board eMMC module
- on-board Nand flash
- ···

Adds initial support for it, including UART and PMU.

Signed-off-by: Yangtao Li 
---
 arch/arm64/boot/dts/allwinner/Makefile|   1 +
 .../allwinner/sun50i-a100-allwinner-perf1.dts | 180 ++
 2 files changed, 181 insertions(+)
 create mode 100644 
arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts

diff --git a/arch/arm64/boot/dts/allwinner/Makefile 
b/arch/arm64/boot/dts/allwinner/Makefile
index e4d3cd0ac5bb..ab780dbdd17b 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -14,6 +14,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-emlid-neutis-n5-devboard.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts 
b/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts
new file mode 100644
index ..d34c2bb1079f
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts
@@ -0,0 +1,180 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (c) 2020 Yangtao Li 
+ */
+
+/dts-v1/;
+
+#include "sun50i-a100.dtsi"
+
+/{
+   model = "Allwinner A100 Perf1";
+   compatible = "allwinner,a100-perf1", "allwinner,sun50i-a100";
+
+   aliases {
+   serial0 = 
+   };
+
+   chosen {
+   stdout-path = "serial0:115200n8";
+   };
+};
+
+ {
+   vcc-pb-supply = <_dcdc1>;
+   vcc-pc-supply = <_eldo1>;
+   vcc-pd-supply = <_dcdc1>;
+   vcc-pe-supply = <_dldo2>;
+   vcc-pf-supply = <_dcdc1>;
+   vcc-pg-supply = <_dldo1>;
+   vcc-ph-supply = <_dcdc1>;
+};
+
+_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 = <_aldo3>;
+*/
+};
+
+_i2c0 {
+   status = "okay";
+
+   axp803: pmic@34 {
+   compatible = "x-powers,axp803";
+   reg = <0x34>;
+   interrupt-parent = <_intc>;
+   interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+   x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
+   };
+};
+
+#include "axp803.dtsi"
+
+_power_supply {
+   status = "okay";
+};
+
+_aldo1 {
+   regulator-always-on;
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <180>;
+   regulator-name = "vcc-pll-avcc";
+};
+
+_aldo2 {
+   regulator-always-on;
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <180>;
+   regulator-name = "vcc-dram-1";
+};
+
+_aldo3 {
+   regulator-always-on;
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   regulator-name = "vcc-usb-pl";
+};
+
+_dcdc1 {
+   regulator-always-on;
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   regulator-name = "vcc-io-usb-pd-emmc-nand-card";
+};
+
+_dcdc2 {
+   regulator-always-on;
+   /*
+* FIXME: update min and max before support dvfs.
+*/
+   regulator-min-microvolt = <50>;
+   regulator-max-microvolt = <130>;
+   regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+_dcdc4 {
+   regulator-always-on;
+   regulator-min-microvolt = <95>;
+   regulator-max-microvolt = <95>;
+   regulator-name = "vdd-sys-usb-dram";
+};
+
+_dcdc5 {
+   regulator-always-on;
+   regulator-min-microvolt = <150>;
+   regulator-max-microvolt = <150>;
+   regulator-name = "vcc-dram-2";
+};
+
+_dldo1 {
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   regulator-name = "vcc-pg-dcxo-wifi";
+};
+
+_dldo2 {
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <280>;
+   regulator-name = "vcc-pe-csi";
+};
+
+_dldo3 {
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <330>;
+   regulator-name = "ldo-avdd-csi";
+};
+
+_dldo4 {
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <280>;
+   regulator-name = "avcc-csi";
+};
+
+_eldo1 {
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <180>;
+   regulator-name = "vcc-pc-lvds-csi-efuse-emmc-nand";
+};
+
+_eldo2 {
+