All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
@ 2018-10-28 21:18 Vasily Khoruzhick
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 1/5] mmc: sunxi: add support for automatic delay calibration Vasily Khoruzhick
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-10-28 21:18 UTC (permalink / raw)
  To: u-boot

This series adds support for the Pinebook, an allwinner A64 laptop
produced by Pine64. It also syncs sun50i-a64.dtsi with linux,
adds support for mmc delay calibration, R_I2C controller,
and addresses the issue with activating video bridge when any of
GPIOs is missing.

v2: - sync sun50i-a64.dtsi with linux instead of adding missing nodes
    - take sun50i-a64-pinebook.dts from linux
    - don't introduce new Kconfig for A64 MMC calibration
    - improve code in video bridge uclass to check for presensce of
      GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
    - init ret variable in video_bridge_set_active()
    - fix order of dts files Makefile
    - split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
    - drop speaker_amp node from pinebook dts
    - drop unnecessary options from defconfig
v4: - sync device tree files with linux-next

Vasily Khoruzhick (5):
  mmc: sunxi: add support for automatic delay calibration
  dm: video: bridge: don't fail to activate bridge if reset or sleep
    GPIO is missing
  sunxi: DT: A64: update device tree files for Allwinner A64 SoC
  sun50i: A64: add support for R_I2C controller
  sunxi: DT: add support for Pinebook

 arch/arm/dts/Makefile                        |   1 +
 arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
 arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
 arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
 arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
 arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
 arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
 arch/arm/dts/sun50i-a64-pinebook.dts         | 294 +++++++++++++++++
 arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
 arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
 arch/arm/dts/sun50i-a64.dtsi                 | 313 +++++++++++++++++--
 arch/arm/include/asm/arch-sunxi/gpio.h       |   1 +
 arch/arm/include/asm/arch-sunxi/mmc.h        |   6 +-
 arch/arm/mach-sunxi/Kconfig                  |   1 +
 board/sunxi/board.c                          |   6 +
 configs/pinebook_defconfig                   |  22 ++
 drivers/mmc/sunxi_mmc.c                      |  21 +-
 drivers/video/bridge/video-bridge-uclass.c   |  16 +-
 19 files changed, 1296 insertions(+), 52 deletions(-)
 create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
 create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
 create mode 100644 configs/pinebook_defconfig

-- 
2.19.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 1/5] mmc: sunxi: add support for automatic delay calibration
  2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
@ 2018-10-28 21:18 ` Vasily Khoruzhick
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 2/5] dm: video: bridge: don't fail to activate bridge if reset or sleep GPIO is missing Vasily Khoruzhick
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-10-28 21:18 UTC (permalink / raw)
  To: u-boot

A64 and H6 support automatic delay calibration and Linux driver uses it
instead of hardcoded delays. Add support for it to u-boot driver.

Fixes eMMC instability on Pinebook

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
---
 arch/arm/include/asm/arch-sunxi/mmc.h |  6 +++++-
 drivers/mmc/sunxi_mmc.c               | 21 ++++++++++++++++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/asm/arch-sunxi/mmc.h
index d98c53faaa..f2deafddd2 100644
--- a/arch/arm/include/asm/arch-sunxi/mmc.h
+++ b/arch/arm/include/asm/arch-sunxi/mmc.h
@@ -46,7 +46,9 @@ struct sunxi_mmc {
 	u32 cbda;		/* 0x94 */
 	u32 res2[26];
 #if defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
-	u32 res3[64];
+	u32 res3[17];
+	u32 samp_dl;
+	u32 res4[46];
 #endif
 	u32 fifo;		/* 0x100 / 0x200 FIFO access address */
 };
@@ -130,5 +132,7 @@ struct sunxi_mmc {
 #define SUNXI_MMC_COMMON_CLK_GATE		(1 << 16)
 #define SUNXI_MMC_COMMON_RESET			(1 << 18)
 
+#define SUNXI_MMC_CAL_DL_SW_EN		(0x1 << 7)
+
 struct mmc *sunxi_mmc_init(int sdc_no);
 #endif /* _SUNXI_MMC_H */
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index 39f15eb423..147eb9b4d5 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -99,11 +99,16 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
 {
 	unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly;
 	bool new_mode = false;
+	bool calibrate = false;
 	u32 val = 0;
 
 	if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2))
 		new_mode = true;
 
+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6)
+	calibrate = true;
+#endif
+
 	/*
 	 * The MMC clock has an extra /2 post-divider when operating in the new
 	 * mode.
@@ -174,7 +179,11 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
 		val = CCM_MMC_CTRL_MODE_SEL_NEW;
 		setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW);
 #endif
-	} else {
+	} else if (!calibrate) {
+		/*
+		 * Use hardcoded delay values if controller doesn't support
+		 * calibration
+		 */
 		val = CCM_MMC_CTRL_OCLK_DLY(oclk_dly) |
 			CCM_MMC_CTRL_SCLK_DLY(sclk_dly);
 	}
@@ -228,6 +237,16 @@ static int mmc_config_clock(struct sunxi_mmc_priv *priv, struct mmc *mmc)
 	rval &= ~SUNXI_MMC_CLK_DIVIDER_MASK;
 	writel(rval, &priv->reg->clkcr);
 
+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6)
+	/* A64 supports calibration of delays on MMC controller and we
+	 * have to set delay of zero before starting calibration.
+	 * Allwinner BSP driver sets a delay only in the case of
+	 * using HS400 which is not supported by mainline U-Boot or
+	 * Linux at the moment
+	 */
+	writel(SUNXI_MMC_CAL_DL_SW_EN, &priv->reg->samp_dl);
+#endif
+
 	/* Re-enable Clock */
 	rval |= SUNXI_MMC_CLK_ENABLE;
 	writel(rval, &priv->reg->clkcr);
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 2/5] dm: video: bridge: don't fail to activate bridge if reset or sleep GPIO is missing
  2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 1/5] mmc: sunxi: add support for automatic delay calibration Vasily Khoruzhick
@ 2018-10-28 21:18 ` Vasily Khoruzhick
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 3/5] sunxi: DT: A64: update device tree files for Allwinner A64 SoC Vasily Khoruzhick
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-10-28 21:18 UTC (permalink / raw)
  To: u-boot

Both GPIOs are optional, so we shouldn't fail if any is missing.
Without this fix reset is not deasserted if sleep GPIO is missing.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
---
 drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/video/bridge/video-bridge-uclass.c b/drivers/video/bridge/video-bridge-uclass.c
index cd4959cc71..5fecb4cfd5 100644
--- a/drivers/video/bridge/video-bridge-uclass.c
+++ b/drivers/video/bridge/video-bridge-uclass.c
@@ -106,13 +106,19 @@ static int video_bridge_pre_probe(struct udevice *dev)
 int video_bridge_set_active(struct udevice *dev, bool active)
 {
 	struct video_bridge_priv *uc_priv = dev_get_uclass_priv(dev);
-	int ret;
+	int ret = 0;
 
 	debug("%s: %d\n", __func__, active);
-	ret = dm_gpio_set_value(&uc_priv->sleep, !active);
-	if (ret)
-		return ret;
-	if (active) {
+	if (uc_priv->sleep.dev) {
+		ret = dm_gpio_set_value(&uc_priv->sleep, !active);
+		if (ret)
+			return ret;
+	}
+
+	if (!active)
+		return 0;
+
+	if (uc_priv->reset.dev) {
 		ret = dm_gpio_set_value(&uc_priv->reset, true);
 		if (ret)
 			return ret;
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 3/5] sunxi: DT: A64: update device tree files for Allwinner A64 SoC
  2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 1/5] mmc: sunxi: add support for automatic delay calibration Vasily Khoruzhick
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 2/5] dm: video: bridge: don't fail to activate bridge if reset or sleep GPIO is missing Vasily Khoruzhick
@ 2018-10-28 21:18 ` Vasily Khoruzhick
  2018-10-28 21:19 ` [U-Boot] [PATCH v4 4/5] sun50i: A64: add support for R_I2C controller Vasily Khoruzhick
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-10-28 21:18 UTC (permalink / raw)
  To: u-boot

Updates the device tree files from the linux-next tree,
exactly Linux commit:

commit 8c60c36d0b8c (tag: next-20181019)
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Fri Oct 19 18:13:43 2018 +1100

    Add linux-next specific files for 20181019

    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
---
 arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
 arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
 arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
 arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
 arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
 arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
 arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
 arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
 arch/arm/dts/sun50i-a64.dtsi                 | 313 +++++++++++++++++--
 9 files changed, 920 insertions(+), 45 deletions(-)

diff --git a/arch/arm/dts/sun50i-a64-amarula-relic.dts b/arch/arm/dts/sun50i-a64-amarula-relic.dts
index f3b4e93ece..6cb2b7f0c8 100644
--- a/arch/arm/dts/sun50i-a64-amarula-relic.dts
+++ b/arch/arm/dts/sun50i-a64-amarula-relic.dts
@@ -22,11 +22,11 @@
 		stdout-path = "serial0:115200n8";
 	};
 
-	reg_vcc3v3: vcc3v3 {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc3v3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
+	wifi_pwrseq: wifi-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		clocks = <&rtc 1>;
+		clock-names = "ext_clock";
+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */
 	};
 };
 
@@ -34,10 +34,34 @@
 	status = "okay";
 };
 
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins>;
+	vmmc-supply = <&reg_dcdc1>;
+	/*
+	 * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but
+	 * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with
+	 * 0Ohm register to vcc-io-wifi so eldo1 is used.
+	 */
+	vqmmc-supply = <&reg_eldo1>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	brcmf: wifi at 1 {
+		reg = <1>;
+		compatible = "brcm,bcm4329-fmac";
+		interrupt-parent = <&r_pio>;
+		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>;	/* WL-WAKE-AP: PL3 */
+		interrupt-names = "host-wake";
+	};
+};
+
 &mmc2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc2_pins>;
-	vmmc-supply = <&reg_vcc3v3>;
+	vmmc-supply = <&reg_dcdc1>;
 	bus-width = <8>;
 	non-removable;
 	cap-mmc-hw-reset;
@@ -48,9 +72,138 @@
 	status = "okay";
 };
 
+&r_rsb {
+	status = "okay";
+
+	axp803: pmic at 3a3 {
+		compatible = "x-powers,axp803";
+		reg = <0x3a3>;
+		interrupt-parent = <&r_intc>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+		x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
+	};
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo1 {
+	regulator-always-on;
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
+	regulator-name = "avdd-csi";
+};
+
+&reg_aldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+	regulator-always-on;
+	regulator-min-microvolt = <3000000>;
+	regulator-max-microvolt = <3000000>;
+	regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dcdc1 {
+	regulator-always-on;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1040000>;
+	regulator-max-microvolt = <1300000>;
+	regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+	regulator-always-on;
+	regulator-min-microvolt = <1500000>;
+	regulator-max-microvolt = <1500000>;
+	regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-hdmi-dsi-sensor";
+};
+
+&reg_dldo2 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-mipi";
+};
+
+&reg_dldo3 {
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
+	regulator-name = "dovdd-csi";
+};
+
+&reg_dldo4 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-wifi-io";
+};
+
+&reg_drivevbus {
+	regulator-name = "usb0-vbus";
+	status = "okay";
+};
+
+&reg_eldo1 {
+	regulator-always-on;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "cpvdd";
+};
+
+&reg_eldo3 {
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "dvdd-csi";
+};
+
+&reg_fldo1 {
+	regulator-min-microvolt = <1200000>;
+	regulator-max-microvolt = <1200000>;
+	regulator-name = "vcc-1v2-hsic";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+	regulator-name = "vcc-rtc";
+};
+
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
 	status = "okay";
 };
 
@@ -61,5 +214,6 @@
 
 &usbphy {
 	usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
+	usb0_vbus-supply = <&reg_drivevbus>;
 	status = "okay";
 };
diff --git a/arch/arm/dts/sun50i-a64-bananapi-m64.dts b/arch/arm/dts/sun50i-a64-bananapi-m64.dts
index 0716b14411..ef1c90401b 100644
--- a/arch/arm/dts/sun50i-a64-bananapi-m64.dts
+++ b/arch/arm/dts/sun50i-a64-bananapi-m64.dts
@@ -60,6 +60,17 @@
 		stdout-path = "serial0:115200n8";
 	};
 
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
 	leds {
 		compatible = "gpio-leds";
 
@@ -86,6 +97,10 @@
 	};
 };
 
+&de {
+	status = "okay";
+};
+
 &ehci0 {
 	status = "okay";
 };
@@ -103,6 +118,17 @@
 	status = "okay";
 };
 
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
 &i2c1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c1_pins>;
@@ -151,7 +177,7 @@
 
 &mmc2 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&mmc2_pins>;
+	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
 	vmmc-supply = <&reg_dcdc1>;
 	bus-width = <8>;
 	non-removable;
@@ -296,9 +322,13 @@
 	regulator-name = "vcc-rtc";
 };
 
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
 	status = "okay";
 };
 
diff --git a/arch/arm/dts/sun50i-a64-nanopi-a64.dts b/arch/arm/dts/sun50i-a64-nanopi-a64.dts
index e2dce48fa2..31884dbc88 100644
--- a/arch/arm/dts/sun50i-a64-nanopi-a64.dts
+++ b/arch/arm/dts/sun50i-a64-nanopi-a64.dts
@@ -51,12 +51,44 @@
 	compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64";
 
 	aliases {
+		ethernet0 = &emac;
 		serial0 = &uart0;
 	};
 
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		blue {
+			label = "nanopi-a64:blue:status";
+			gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
+		};
+	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		clocks = <&rtc 1>;
+		clock-names = "ext_clock";
+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
+	};
+};
+
+&de {
+	status = "okay";
 };
 
 &ehci0 {
@@ -67,6 +99,26 @@
 	status = "okay";
 };
 
+&emac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii_pins>;
+	phy-mode = "rgmii";
+	phy-handle = <&ext_rgmii_phy>;
+	phy-supply = <&reg_dcdc1>;
+	status = "okay";
+};
+
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
 /* i2c1 connected with gpio headers like pine64, bananapi */
 &i2c1 {
 	pinctrl-names = "default";
@@ -78,6 +130,13 @@
 	bias-pull-up;
 };
 
+&mdio {
+	ext_rgmii_phy: ethernet-phy at 1 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <7>;
+	};
+};
+
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
@@ -88,6 +147,24 @@
 	status = "okay";
 };
 
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins>;
+	vmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_dldo4>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	rtl8189etv: wifi at 1 {
+		reg = <1>;
+		interrupt-parent = <&r_pio>;
+		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
+		interrupt-names = "host-wake";
+	};
+};
+
 &ohci0 {
 	status = "okay";
 };
@@ -125,9 +202,9 @@
 
 &reg_dcdc1 {
 	regulator-always-on;
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
-	regulator-name = "vcc-3v";
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
 };
 
 &reg_dcdc2 {
@@ -195,9 +272,13 @@
 	regulator-name = "vcc-rtc";
 };
 
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
 	status = "okay";
 };
 
diff --git a/arch/arm/dts/sun50i-a64-olinuxino.dts b/arch/arm/dts/sun50i-a64-olinuxino.dts
index 3b3081b10e..f7a4bccaa5 100644
--- a/arch/arm/dts/sun50i-a64-olinuxino.dts
+++ b/arch/arm/dts/sun50i-a64-olinuxino.dts
@@ -51,6 +51,7 @@
 	compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64";
 
 	aliases {
+		ethernet0 = &emac;
 		serial0 = &uart0;
 	};
 
@@ -58,12 +59,74 @@
 		stdout-path = "serial0:115200n8";
 	};
 
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
+	reg_usb1_vbus: usb1-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb1-vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */
+		status = "okay";
+	};
+
 	wifi_pwrseq: wifi_pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
 	};
 };
 
+&de {
+	status = "okay";
+};
+
+&ehci0 {
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&emac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii_pins>;
+	phy-mode = "rgmii";
+	phy-handle = <&ext_rgmii_phy>;
+	phy-supply = <&reg_dcdc1>;
+	allwinner,tx-delay-ps = <600>;
+	status = "okay";
+};
+
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
+&mdio {
+	ext_rgmii_phy: ethernet-phy at 1 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <1>;
+	};
+};
+
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
@@ -92,6 +155,14 @@
 	};
 };
 
+&ohci0 {
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
 &r_rsb {
 	status = "okay";
 
@@ -100,6 +171,7 @@
 		reg = <0x3a3>;
 		interrupt-parent = <&r_intc>;
 		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+		x-powers,drive-vbus-en;	/* set N_VBUSEN as output pin */
 	};
 };
 
@@ -142,10 +214,14 @@
 
 /* DCDC3 is polyphased with DCDC2 */
 
+/*
+ * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal
+ * 1.35V that the PMIC can drive.
+ */
 &reg_dcdc5 {
 	regulator-always-on;
-	regulator-min-microvolt = <1500000>;
-	regulator-max-microvolt = <1500000>;
+	regulator-min-microvolt = <1360000>;
+	regulator-max-microvolt = <1360000>;
 	regulator-name = "vcc-ddr3";
 };
 
@@ -180,6 +256,11 @@
 	regulator-name = "vcc-wifi-io";
 };
 
+&reg_drivevbus {
+	regulator-name = "usb0-vbus";
+	status = "okay";
+};
+
 &reg_eldo1 {
 	regulator-min-microvolt = <1800000>;
 	regulator-max-microvolt = <1800000>;
@@ -214,8 +295,24 @@
 	regulator-name = "vcc-rtc";
 };
 
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
+	status = "okay";
+};
+
+&usb_otg {
+	dr_mode = "otg";
+	status = "okay";
+};
+
+&usbphy {
 	status = "okay";
+	usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
+	usb0_vbus-supply = <&reg_drivevbus>;
+	usb1_vbus-supply = <&reg_usb1_vbus>;
 };
diff --git a/arch/arm/dts/sun50i-a64-orangepi-win.dts b/arch/arm/dts/sun50i-a64-orangepi-win.dts
index bf42690a33..b0c64f7579 100644
--- a/arch/arm/dts/sun50i-a64-orangepi-win.dts
+++ b/arch/arm/dts/sun50i-a64-orangepi-win.dts
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
+ * Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org>
  *
  * This file is dual-licensed: you can use it either under the terms
  * of the GPL or the X11 license, at your option. Note that this dual
@@ -51,23 +52,127 @@
 	compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64";
 
 	aliases {
+		ethernet0 = &emac;
 		serial0 = &uart0;
+		serial1 = &uart1;
+		serial2 = &uart2;
+		serial3 = &uart3;
+		serial4 = &uart4;
 	};
 
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		status {
+			label = "orangepi:green:status";
+			gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
+		};
+	};
+
+	reg_gmac_3v3: gmac-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "gmac-3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */
+		status = "okay";
+	};
+
+	reg_usb1_vbus: usb1-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb1-vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */
+		status = "okay";
+	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
+	};
+};
+
+&de {
+	status = "okay";
+};
+
+&ehci0 {
+	status = "okay";
 };
 
 &ehci1 {
 	status = "okay";
 };
 
+&emac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii_pins>;
+	phy-mode = "rgmii";
+	phy-handle = <&ext_rgmii_phy>;
+	phy-supply = <&reg_gmac_3v3>;
+	status = "okay";
+};
+
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
+&mdio {
+	ext_rgmii_phy: ethernet-phy at 1 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <1>;
+	};
+};
+
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
 	vmmc-supply = <&reg_dcdc1>;
-	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
+	disable-wp;
+	bus-width = <4>;
+	status = "okay";
+};
+
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins>;
+	vmmc-supply = <&reg_dldo2>;
+	vqmmc-supply = <&reg_dldo4>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+};
+
+&ohci0 {
 	status = "okay";
 };
 
@@ -89,9 +194,8 @@
 #include "axp803.dtsi"
 
 &reg_aldo1 {
-	regulator-always-on;
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <3300000>;
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
 	regulator-name = "afvcc-csi";
 };
 
@@ -163,12 +267,23 @@
 	regulator-name = "vcc-wifi-io";
 };
 
+&reg_drivevbus {
+	regulator-name = "usb0-vbus";
+	status = "okay";
+};
+
 &reg_eldo1 {
 	regulator-min-microvolt = <1800000>;
 	regulator-max-microvolt = <1800000>;
 	regulator-name = "cpvdd";
 };
 
+&reg_eldo3 {
+	regulator-min-microvolt = <1500000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "dvdd-csi";
+};
+
 &reg_fldo1 {
 	regulator-min-microvolt = <1200000>;
 	regulator-max-microvolt = <1200000>;
@@ -191,13 +306,65 @@
 	regulator-name = "vcc-rtc";
 };
 
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
+&spi0 {
+	status = "okay";
+
+	spi-flash at 0 {
+		compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <80000000>;
+		m25p,fast-read;
+		status = "okay";
+	};
+};
+
+/* On debug connector */
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
 	status = "okay";
 };
 
-&usbphy {
+/* Bluetooth */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+	status = "okay";
+};
+
+/* On Pi-2 connector, RTS/CTS optional */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins>;
+	status = "disabled";
+};
+
+/* On Pi-2 connector, RTS/CTS optional */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart3_pins>;
+	status = "disabled";
+};
+
+/* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart4_pins>;
+	status = "disabled";
+};
+
+&usb_otg {
+	dr_mode = "otg";
 	status = "okay";
 };
 
+&usbphy {
+	usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
+	usb0_vbus-supply = <&reg_drivevbus>;
+	usb1_vbus-supply = <&reg_usb1_vbus>;
+	status = "okay";
+};
diff --git a/arch/arm/dts/sun50i-a64-pine64.dts b/arch/arm/dts/sun50i-a64-pine64.dts
index a75825798a..c077b6c1f4 100644
--- a/arch/arm/dts/sun50i-a64-pine64.dts
+++ b/arch/arm/dts/sun50i-a64-pine64.dts
@@ -62,6 +62,21 @@
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+};
+
+&de {
+	status = "okay";
 };
 
 &ehci0 {
@@ -82,6 +97,17 @@
 
 };
 
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
 &i2c1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c1_pins>;
@@ -229,6 +255,10 @@
 	regulator-name = "vcc-rtc";
 };
 
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
 /* On Euler connector */
 &spdif {
 	status = "disabled";
@@ -237,7 +267,7 @@
 /* On Exp and Euler connectors */
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
 	status = "okay";
 };
 
diff --git a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
index abe179de35..53fcc9098d 100644
--- a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
+++ b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
@@ -61,6 +61,17 @@
 		stdout-path = "serial0:115200n8";
 	};
 
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
 	reg_vcc1v8: vcc1v8 {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc1v8";
@@ -69,6 +80,10 @@
 	};
 };
 
+&de {
+	status = "okay";
+};
+
 &ehci0 {
 	status = "okay";
 };
@@ -86,6 +101,17 @@
 	status = "okay";
 };
 
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
 &mdio {
 	ext_rgmii_phy: ethernet-phy at 1 {
 		compatible = "ethernet-phy-ieee802.3-c22";
@@ -134,9 +160,13 @@
 	regulator-name = "vcc-wifi";
 };
 
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
 &uart0 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins_a>;
+	pinctrl-0 = <&uart0_pb_pins>;
 	status = "okay";
 };
 
diff --git a/arch/arm/dts/sun50i-a64-sopine.dtsi b/arch/arm/dts/sun50i-a64-sopine.dtsi
index 43418bd881..6723b8695e 100644
--- a/arch/arm/dts/sun50i-a64-sopine.dtsi
+++ b/arch/arm/dts/sun50i-a64-sopine.dtsi
@@ -45,6 +45,8 @@
 
 #include "sun50i-a64.dtsi"
 
+#include <dt-bindings/gpio/gpio.h>
+
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
@@ -52,6 +54,7 @@
 	non-removable;
 	disable-wp;
 	bus-width = <4>;
+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
 	status = "okay";
 };
 
@@ -66,6 +69,18 @@
 	};
 };
 
+&spi0  {
+	status = "okay";
+
+	flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <40000000>;
+	};
+};
+
 #include "axp803.dtsi"
 
 &reg_aldo2 {
diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi
index 7a083637c4..f3a66f8882 100644
--- a/arch/arm/dts/sun50i-a64.dtsi
+++ b/arch/arm/dts/sun50i-a64.dtsi
@@ -43,9 +43,12 @@
  */
 
 #include <dt-bindings/clock/sun50i-a64-ccu.h>
+#include <dt-bindings/clock/sun8i-de2.h>
 #include <dt-bindings/clock/sun8i-r-ccu.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/sun50i-a64-ccu.h>
+#include <dt-bindings/reset/sun8i-de2.h>
+#include <dt-bindings/reset/sun8i-r-ccu.h>
 
 / {
 	interrupt-parent = <&gic>;
@@ -57,17 +60,21 @@
 		#size-cells = <1>;
 		ranges;
 
-/*
- * The pipeline mixer0-lcd0 depends on clock CLK_MIXER0 from DE2 CCU.
- * However there is no support for this clock on A64 yet, so we depend
- * on the upstream clocks here to keep them (and thus CLK_MIXER0) up.
- */
 		simplefb_lcd: framebuffer-lcd {
 			compatible = "allwinner,simple-framebuffer",
 				     "simple-framebuffer";
 			allwinner,pipeline = "mixer0-lcd0";
 			clocks = <&ccu CLK_TCON0>,
-				 <&ccu CLK_DE>, <&ccu CLK_BUS_DE>;
+				 <&display_clocks CLK_MIXER0>;
+			status = "disabled";
+		};
+
+		simplefb_hdmi: framebuffer-hdmi {
+			compatible = "allwinner,simple-framebuffer",
+				     "simple-framebuffer";
+			allwinner,pipeline = "mixer1-lcd1-hdmi";
+			clocks = <&display_clocks CLK_MIXER1>,
+				 <&ccu CLK_TCON1>, <&ccu CLK_HDMI>;
 			status = "disabled";
 		};
 	};
@@ -81,6 +88,7 @@
 			device_type = "cpu";
 			reg = <0>;
 			enable-method = "psci";
+			next-level-cache = <&L2>;
 		};
 
 		cpu1: cpu at 1 {
@@ -88,6 +96,7 @@
 			device_type = "cpu";
 			reg = <1>;
 			enable-method = "psci";
+			next-level-cache = <&L2>;
 		};
 
 		cpu2: cpu at 2 {
@@ -95,6 +104,7 @@
 			device_type = "cpu";
 			reg = <2>;
 			enable-method = "psci";
+			next-level-cache = <&L2>;
 		};
 
 		cpu3: cpu at 3 {
@@ -102,7 +112,20 @@
 			device_type = "cpu";
 			reg = <3>;
 			enable-method = "psci";
+			next-level-cache = <&L2>;
 		};
+
+		L2: l2-cache {
+			compatible = "cache";
+			cache-level = <2>;
+		};
+	};
+
+	de: display-engine {
+		compatible = "allwinner,sun50i-a64-display-engine";
+		allwinner,pipelines = <&mixer0>,
+				      <&mixer1>;
+		status = "disabled";
 	};
 
 	osc24M: osc24M_clk {
@@ -168,10 +191,92 @@
 		#size-cells = <1>;
 		ranges;
 
+		de2 at 1000000 {
+			compatible = "allwinner,sun50i-a64-de2";
+			reg = <0x1000000 0x400000>;
+			allwinner,sram = <&de2_sram 1>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 0x1000000 0x400000>;
+
+			display_clocks: clock at 0 {
+				compatible = "allwinner,sun50i-a64-de2-clk";
+				reg = <0x0 0x100000>;
+				clocks = <&ccu CLK_DE>,
+					 <&ccu CLK_BUS_DE>;
+				clock-names = "mod",
+					      "bus";
+				resets = <&ccu RST_BUS_DE>;
+				#clock-cells = <1>;
+				#reset-cells = <1>;
+			};
+
+			mixer0: mixer at 100000 {
+				compatible = "allwinner,sun50i-a64-de2-mixer-0";
+				reg = <0x100000 0x100000>;
+				clocks = <&display_clocks CLK_BUS_MIXER0>,
+					 <&display_clocks CLK_MIXER0>;
+				clock-names = "bus",
+					      "mod";
+				resets = <&display_clocks RST_MIXER0>;
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					mixer0_out: port at 1 {
+						reg = <1>;
+
+						mixer0_out_tcon0: endpoint {
+							remote-endpoint = <&tcon0_in_mixer0>;
+						};
+					};
+				};
+			};
+
+			mixer1: mixer at 200000 {
+				compatible = "allwinner,sun50i-a64-de2-mixer-1";
+				reg = <0x200000 0x100000>;
+				clocks = <&display_clocks CLK_BUS_MIXER1>,
+					 <&display_clocks CLK_MIXER1>;
+				clock-names = "bus",
+					      "mod";
+				resets = <&display_clocks RST_MIXER1>;
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					mixer1_out: port at 1 {
+						reg = <1>;
+
+						mixer1_out_tcon1: endpoint {
+							remote-endpoint = <&tcon1_in_mixer1>;
+						};
+					};
+				};
+			};
+		};
+
 		syscon: syscon at 1c00000 {
-			compatible = "allwinner,sun50i-a64-system-controller",
-				"syscon";
+			compatible = "allwinner,sun50i-a64-system-control";
 			reg = <0x01c00000 0x1000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+
+			sram_c: sram at 18000 {
+				compatible = "mmio-sram";
+				reg = <0x00018000 0x28000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+				ranges = <0 0x00018000 0x28000>;
+
+				de2_sram: sram-section at 0 {
+					compatible = "allwinner,sun50i-a64-sram-c";
+					reg = <0x0000 0x28000>;
+				};
+			};
 		};
 
 		dma: dma-controller at 1c02000 {
@@ -185,6 +290,75 @@
 			#dma-cells = <1>;
 		};
 
+		tcon0: lcd-controller at 1c0c000 {
+			compatible = "allwinner,sun50i-a64-tcon-lcd",
+				     "allwinner,sun8i-a83t-tcon-lcd";
+			reg = <0x01c0c000 0x1000>;
+			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
+			clock-names = "ahb", "tcon-ch0";
+			clock-output-names = "tcon-pixel-clock";
+			resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
+			reset-names = "lcd", "lvds";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				tcon0_in: port at 0 {
+					#address-cells = <1>;
+					#size-cells = <0>;
+					reg = <0>;
+
+					tcon0_in_mixer0: endpoint at 0 {
+						reg = <0>;
+						remote-endpoint = <&mixer0_out_tcon0>;
+					};
+				};
+
+				tcon0_out: port at 1 {
+					#address-cells = <1>;
+					#size-cells = <0>;
+					reg = <1>;
+				};
+			};
+		};
+
+		tcon1: lcd-controller at 1c0d000 {
+			compatible = "allwinner,sun50i-a64-tcon-tv",
+				     "allwinner,sun8i-a83t-tcon-tv";
+			reg = <0x01c0d000 0x1000>;
+			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>;
+			clock-names = "ahb", "tcon-ch1";
+			resets = <&ccu RST_BUS_TCON1>;
+			reset-names = "lcd";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				tcon1_in: port at 0 {
+					reg = <0>;
+
+					tcon1_in_mixer1: endpoint {
+						remote-endpoint = <&mixer1_out_tcon1>;
+					};
+				};
+
+				tcon1_out: port at 1 {
+					#address-cells = <1>;
+					#size-cells = <0>;
+					reg = <1>;
+
+					tcon1_out_hdmi: endpoint at 1 {
+						reg = <1>;
+						remote-endpoint = <&hdmi_in_tcon1>;
+					};
+				};
+			};
+		};
+
 		mmc0: mmc at 1c0f000 {
 			compatible = "allwinner,sun50i-a64-mmc";
 			reg = <0x01c0f000 0x1000>;
@@ -227,6 +401,11 @@
 			#size-cells = <0>;
 		};
 
+		sid: eeprom at 1c14000 {
+			compatible = "allwinner,sun50i-a64-sid";
+			reg = <0x1c14000 0x400>;
+		};
+
 		usb_otg: usb at 1c19000 {
 			compatible = "allwinner,sun8i-a33-musb";
 			reg = <0x01c19000 0x0400>;
@@ -356,7 +535,7 @@
 			};
 
 			mmc2_pins: mmc2-pins {
-				pins = "PC1", "PC5", "PC6", "PC8", "PC9",
+				pins = "PC5", "PC6", "PC8", "PC9",
 				       "PC10","PC11", "PC12", "PC13",
 				       "PC14", "PC15", "PC16";
 				function = "mmc2";
@@ -364,6 +543,18 @@
 				bias-pull-up;
 			};
 
+			mmc2_ds_pin: mmc2-ds-pin {
+				pins = "PC1";
+				function = "mmc2";
+				drive-strength = <30>;
+				bias-pull-up;
+			};
+
+			pwm_pin: pwm_pin {
+				pins = "PD22";
+				function = "pwm";
+			};
+
 			rmii_pins: rmii_pins {
 				pins = "PD10", "PD11", "PD13", "PD14", "PD17",
 				       "PD18", "PD19", "PD20", "PD22", "PD23";
@@ -394,7 +585,7 @@
 				function = "spi1";
 			};
 
-			uart0_pins_a: uart0 {
+			uart0_pb_pins: uart0-pb-pins {
 				pins = "PB8", "PB9";
 				function = "uart0";
 			};
@@ -474,15 +665,6 @@
 			status = "disabled";
 		};
 
-		pwm: pwm at 1c21400 {
-			compatible = "allwinner,sun50i-a64-pwm",
-				     "allwinner,sun5i-a13-pwm";
-			reg = <0x01c21400 0x8>;
-			clocks = <&osc24M>;
-			#pwm-cells = <3>;
-			status = "disabled";
-		};
-
 		uart0: serial at 1c28000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28000 0x400>;
@@ -617,8 +799,6 @@
 			clocks = <&ccu CLK_BUS_EMAC>;
 			clock-names = "stmmaceth";
 			status = "disabled";
-			#address-cells = <1>;
-			#size-cells = <0>;
 
 			mdio: mdio {
 				compatible = "snps,dwmac-mdio";
@@ -638,11 +818,69 @@
 			#interrupt-cells = <3>;
 		};
 
+		pwm: pwm at 1c21400 {
+			compatible = "allwinner,sun50i-a64-pwm",
+				     "allwinner,sun5i-a13-pwm";
+			reg = <0x01c21400 0x400>;
+			clocks = <&osc24M>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pwm_pin>;
+			#pwm-cells = <3>;
+			status = "disabled";
+		};
+
+		hdmi: hdmi at 1ee0000 {
+			compatible = "allwinner,sun50i-a64-dw-hdmi",
+				     "allwinner,sun8i-a83t-dw-hdmi";
+			reg = <0x01ee0000 0x10000>;
+			reg-io-width = <1>;
+			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
+				 <&ccu CLK_HDMI>;
+			clock-names = "iahb", "isfr", "tmds";
+			resets = <&ccu RST_BUS_HDMI1>;
+			reset-names = "ctrl";
+			phys = <&hdmi_phy>;
+			phy-names = "hdmi-phy";
+			status = "disabled";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				hdmi_in: port at 0 {
+					reg = <0>;
+
+					hdmi_in_tcon1: endpoint {
+						remote-endpoint = <&tcon1_out_hdmi>;
+					};
+				};
+
+				hdmi_out: port at 1 {
+					reg = <1>;
+				};
+			};
+		};
+
+		hdmi_phy: hdmi-phy at 1ef0000 {
+			compatible = "allwinner,sun50i-a64-hdmi-phy";
+			reg = <0x01ef0000 0x10000>;
+			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
+				 <&ccu 7>;
+			clock-names = "bus", "mod", "pll-0";
+			resets = <&ccu RST_BUS_HDMI0>;
+			reset-names = "phy";
+			#phy-cells = <0>;
+		};
+
 		rtc: rtc at 1f00000 {
 			compatible = "allwinner,sun6i-a31-rtc";
 			reg = <0x01f00000 0x54>;
 			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+			clock-output-names = "rtc-osc32k", "rtc-osc32k-out";
+			clocks = <&osc32k>;
+			#clock-cells = <1>;
 		};
 
 		r_intc: interrupt-controller at 1f00c00 {
@@ -664,6 +902,29 @@
 			#reset-cells = <1>;
 		};
 
+		r_i2c: i2c at 1f02400 {
+			compatible = "allwinner,sun50i-a64-i2c",
+				     "allwinner,sun6i-a31-i2c";
+			reg = <0x01f02400 0x400>;
+			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&r_ccu CLK_APB0_I2C>;
+			resets = <&r_ccu RST_APB0_I2C>;
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		r_pwm: pwm at 1f03800 {
+			compatible = "allwinner,sun50i-a64-pwm",
+				     "allwinner,sun5i-a13-pwm";
+			reg = <0x01f03800 0x400>;
+			clocks = <&osc24M>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&r_pwm_pin>;
+			#pwm-cells = <3>;
+			status = "disabled";
+		};
+
 		r_pio: pinctrl at 1f02c00 {
 			compatible = "allwinner,sun50i-a64-r-pinctrl";
 			reg = <0x01f02c00 0x400>;
@@ -675,6 +936,16 @@
 			interrupt-controller;
 			#interrupt-cells = <3>;
 
+			r_i2c_pl89_pins: r-i2c-pl89-pins {
+				pins = "PL8", "PL9";
+				function = "s_i2c";
+			};
+
+			r_pwm_pin: pwm {
+				pins = "PL10";
+				function = "s_pwm";
+			};
+
 			r_rsb_pins: rsb {
 				pins = "PL0", "PL1";
 				function = "s_rsb";
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 4/5] sun50i: A64: add support for R_I2C controller
  2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
                   ` (2 preceding siblings ...)
  2018-10-28 21:18 ` [U-Boot] [PATCH v4 3/5] sunxi: DT: A64: update device tree files for Allwinner A64 SoC Vasily Khoruzhick
@ 2018-10-28 21:19 ` Vasily Khoruzhick
  2018-10-28 21:19 ` [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook Vasily Khoruzhick
  2018-10-30 21:36 ` [U-Boot] [PATCH v4 0/5] Add " Vagrant Cascadian
  5 siblings, 0 replies; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-10-28 21:19 UTC (permalink / raw)
  To: u-boot

Allwinner A64 has a I2C controller, which is in the R_ MMIO zone and has
two groups of pinmuxes on PL bank, so it's called R_I2C.

Add support for this I2C controller and the pinmux which doesn't conflict
with RSB.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
---
 arch/arm/include/asm/arch-sunxi/gpio.h | 1 +
 arch/arm/mach-sunxi/Kconfig            | 1 +
 board/sunxi/board.c                    | 6 ++++++
 3 files changed, 8 insertions(+)

diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
index 6a5eafc3d3..2daf23f6f5 100644
--- a/arch/arm/include/asm/arch-sunxi/gpio.h
+++ b/arch/arm/include/asm/arch-sunxi/gpio.h
@@ -211,6 +211,7 @@ enum sunxi_gpio_number {
 #define SUN8I_H3_GPL_R_TWI	2
 #define SUN8I_A23_GPL_R_TWI	3
 #define SUN8I_GPL_R_UART	2
+#define SUN50I_GPL_R_TWI	2
 
 #define SUN9I_GPN_R_RSB		3
 
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index 686f38fec4..7ba429c744 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -272,6 +272,7 @@ config MACH_SUN50I
 	select ARM64
 	select DM_I2C
 	select PHY_SUN4I_USB
+	select SUN6I_PRCM
 	select SUNXI_DE2
 	select SUNXI_GEN_SUN6I
 	select SUPPORT_SPL
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index d1d7f9f400..90f8bc0a6e 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -168,10 +168,16 @@ void i2c_init_board(void)
 #endif
 
 #ifdef CONFIG_R_I2C_ENABLE
+#ifdef CONFIG_MACH_SUN50I
+	clock_twi_onoff(5, 1);
+	sunxi_gpio_set_cfgpin(SUNXI_GPL(8), SUN50I_GPL_R_TWI);
+	sunxi_gpio_set_cfgpin(SUNXI_GPL(9), SUN50I_GPL_R_TWI);
+#else
 	clock_twi_onoff(5, 1);
 	sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI);
 	sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI);
 #endif
+#endif
 }
 
 #if defined(CONFIG_ENV_IS_IN_MMC) && defined(CONFIG_ENV_IS_IN_FAT)
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook
  2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
                   ` (3 preceding siblings ...)
  2018-10-28 21:19 ` [U-Boot] [PATCH v4 4/5] sun50i: A64: add support for R_I2C controller Vasily Khoruzhick
@ 2018-10-28 21:19 ` Vasily Khoruzhick
  2018-10-29 15:29   ` Loic Devulder
  2018-10-30 21:36 ` [U-Boot] [PATCH v4 0/5] Add " Vagrant Cascadian
  5 siblings, 1 reply; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-10-28 21:19 UTC (permalink / raw)
  To: u-boot

Pinebook is a laptop produced by Pine64, with USB-connected keyboard,
USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP
bridge from Analogix.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
---
 arch/arm/dts/Makefile                        |   1 +
 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
 arch/arm/dts/sun50i-a64-pinebook.dts         | 294 +++++++++++++++++++
 configs/pinebook_defconfig                   |  22 ++
 4 files changed, 332 insertions(+)
 create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
 create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
 create mode 100644 configs/pinebook_defconfig

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 0de6234eec..94ec15a8ac 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \
 	sun50i-a64-orangepi-win.dtb \
 	sun50i-a64-pine64-plus.dtb \
 	sun50i-a64-pine64.dtb \
+	sun50i-a64-pinebook.dtb \
 	sun50i-a64-sopine-baseboard.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
 	sun9i-a80-optimus.dtb \
diff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
new file mode 100644
index 0000000000..a99b7171d0
--- /dev/null
+++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
+ *
+ */
+
+/* The ANX6345 eDP-bridge is on r_i2c */
+&r_i2c {
+	anx6345: edp-bridge at 38 {
+		compatible = "analogix,anx6345";
+		reg = <0x38>;
+		reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
+		status = "okay";
+	};
+};
diff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-a64-pinebook.dts
new file mode 100644
index 0000000000..ec537c5297
--- /dev/null
+++ b/arch/arm/dts/sun50i-a64-pinebook.dts
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
+ *
+ */
+
+/dts-v1/;
+
+#include "sun50i-a64.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pwm/pwm.h>
+
+/ {
+	model = "Pinebook";
+	compatible = "pine64,pinebook", "allwinner,sun50i-a64";
+
+	aliases {
+		serial0 = &uart0;
+		ethernet0 = &rtl8723cs;
+	};
+
+	vdd_bl: regulator at 0 {
+		compatible = "regulator-fixed";
+		regulator-name = "bl-3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
+		enable-active-high;
+	};
+
+	backlight: backlight {
+		compatible = "pwm-backlight";
+		pwms = <&pwm 0 50000 0>;
+		brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
+		default-brightness-level = <2>;
+		enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
+		power-supply = <&vdd_bl>;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+
+		framebuffer-lcd {
+			panel-supply = <&reg_dc1sw>;
+			dvdd25-supply = <&reg_dldo2>;
+			dvdd12-supply = <&reg_fldo1>;
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+
+		lid_switch {
+			label = "Lid Switch";
+			gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
+			linux,input-type = <EV_SW>;
+			linux,code = <SW_LID>;
+			linux,can-disable;
+			wakeup-source;
+		};
+	};
+
+	reg_vcc3v3: vcc3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
+	};
+};
+
+&ehci0 {
+	phys = <&usbphy 0>;
+	phy-names = "usb";
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&mmc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins>;
+	vmmc-supply = <&reg_dcdc1>;
+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
+	disable-wp;
+	bus-width = <4>;
+	status = "okay";
+};
+
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins>;
+	vmmc-supply = <&reg_dldo4>;
+	vqmmc-supply = <&reg_eldo1>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	rtl8723cs: wifi at 1 {
+		reg = <1>;
+	};
+};
+
+&mmc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
+	vmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_eldo1>;
+	bus-width = <8>;
+	non-removable;
+	cap-mmc-hw-reset;
+	mmc-hs200-1_8v;
+	status = "okay";
+};
+
+&ohci0 {
+	phys = <&usbphy 0>;
+	phy-names = "usb";
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
+&pwm {
+	status = "okay";
+};
+
+&r_rsb {
+	status = "okay";
+
+	axp803: pmic at 3a3 {
+		compatible = "x-powers,axp803";
+		reg = <0x3a3>;
+		interrupt-parent = <&r_intc>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+	};
+};
+
+/* The ANX6345 eDP-bridge is on r_i2c */
+&r_i2c {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&r_i2c_pl89_pins>;
+	status = "okay";
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo1 {
+	regulator-min-microvolt = <2800000>;
+	regulator-max-microvolt = <2800000>;
+	regulator-name = "vcc-csi";
+};
+
+&reg_aldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+	regulator-always-on;
+	regulator-min-microvolt = <2700000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dc1sw {
+	regulator-name = "vcc-lcd";
+};
+
+&reg_dcdc1 {
+	regulator-always-on;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1000000>;
+	regulator-max-microvolt = <1300000>;
+	regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+	regulator-always-on;
+	regulator-min-microvolt = <1200000>;
+	regulator-max-microvolt = <1200000>;
+	regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-hdmi";
+};
+
+&reg_dldo2 {
+	regulator-min-microvolt = <2500000>;
+	regulator-max-microvolt = <2500000>;
+	regulator-name = "vcc-edp";
+};
+
+&reg_dldo3 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "avdd-csi";
+};
+
+&reg_dldo4 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-wifi";
+};
+
+&reg_eldo1 {
+	regulator-always-on;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "cpvdd";
+};
+
+&reg_eldo3 {
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "vdd-1v8-csi";
+};
+
+&reg_fldo1 {
+	regulator-min-microvolt = <1200000>;
+	regulator-max-microvolt = <1200000>;
+	regulator-name = "vcc-1v2-hsic";
+};
+
+&reg_fldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-cpus";
+};
+
+&reg_ldo_io0 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-usb";
+	status = "okay";
+};
+
+&reg_rtc_ldo {
+	regulator-name = "vcc-rtc";
+};
+
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pb_pins>;
+	status = "okay";
+};
+
+&usb_otg {
+	dr_mode = "host";
+};
+
+&usbphy {
+	usb0_vbus-supply = <&reg_ldo_io0>;
+	usb1_vbus-supply = <&reg_ldo_io0>;
+	status = "okay";
+};
diff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig
new file mode 100644
index 0000000000..5294dbd2eb
--- /dev/null
+++ b/configs/pinebook_defconfig
@@ -0,0 +1,22 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_SPL=y
+CONFIG_MACH_SUN50I=y
+CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
+CONFIG_DRAM_CLK=552
+CONFIG_DRAM_ZQ=3881949
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_R_I2C_ENABLE=y
+# CONFIG_CMD_FLASH is not set
+# CONFIG_SPL_DOS_PARTITION is not set
+# CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook"
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_PWM=y
+CONFIG_PWM_SUNXI=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
+# CONFIG_USB_GADGET is not set
+CONFIG_VIDEO_BRIDGE=y
+CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook
  2018-10-28 21:19 ` [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook Vasily Khoruzhick
@ 2018-10-29 15:29   ` Loic Devulder
  2018-10-29 16:59     ` Andre Przywara
  0 siblings, 1 reply; 15+ messages in thread
From: Loic Devulder @ 2018-10-29 15:29 UTC (permalink / raw)
  To: u-boot

Hi!

On 10/28/18 10:19 PM, Vasily Khoruzhick wrote:
> Pinebook is a laptop produced by Pine64, with USB-connected keyboard,
> USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP
> bridge from Analogix.
> 
> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
> Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Vagrant Cascadian <vagrant@debian.org>
> ---
>  arch/arm/dts/Makefile                        |   1 +
>  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
>  arch/arm/dts/sun50i-a64-pinebook.dts         | 294 +++++++++++++++++++
>  configs/pinebook_defconfig                   |  22 ++
>  4 files changed, 332 insertions(+)
>  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
>  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
>  create mode 100644 configs/pinebook_defconfig
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 0de6234eec..94ec15a8ac 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \
>  	sun50i-a64-orangepi-win.dtb \
>  	sun50i-a64-pine64-plus.dtb \
>  	sun50i-a64-pine64.dtb \
> +	sun50i-a64-pinebook.dtb \
>  	sun50i-a64-sopine-baseboard.dtb
>  dtb-$(CONFIG_MACH_SUN9I) += \
>  	sun9i-a80-optimus.dtb \
> diff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> new file mode 100644
> index 0000000000..a99b7171d0
> --- /dev/null
> +++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> @@ -0,0 +1,15 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
> + *
> + */
> +
> +/* The ANX6345 eDP-bridge is on r_i2c */
> +&r_i2c {
> +	anx6345: edp-bridge at 38 {
> +		compatible = "analogix,anx6345";
> +		reg = <0x38>;
> +		reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
> +		status = "okay";
> +	};
> +};

Maybe I missed something but I don't see when this dtsi file is used or
included.


> diff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-a64-pinebook.dts
> new file mode 100644
> index 0000000000..ec537c5297
> --- /dev/null
> +++ b/arch/arm/dts/sun50i-a64-pinebook.dts
> @@ -0,0 +1,294 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
> + * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
> + *
> + */
> +
> +/dts-v1/;
> +
> +#include "sun50i-a64.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/pwm/pwm.h>
> +
> +/ {
> +	model = "Pinebook";
> +	compatible = "pine64,pinebook", "allwinner,sun50i-a64";
> +
> +	aliases {
> +		serial0 = &uart0;
> +		ethernet0 = &rtl8723cs;
> +	};
> +
> +	vdd_bl: regulator at 0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "bl-3v3";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
> +		enable-active-high;
> +	};
> +
> +	backlight: backlight {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm 0 50000 0>;
> +		brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
> +		default-brightness-level = <2>;
> +		enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
> +		power-supply = <&vdd_bl>;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +
> +		framebuffer-lcd {
> +			panel-supply = <&reg_dc1sw>;
> +			dvdd25-supply = <&reg_dldo2>;
> +			dvdd12-supply = <&reg_fldo1>;
> +		};
> +	};
> +
> +	gpio_keys {
> +		compatible = "gpio-keys";
> +
> +		lid_switch {
> +			label = "Lid Switch";
> +			gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
> +			linux,input-type = <EV_SW>;
> +			linux,code = <SW_LID>;
> +			linux,can-disable;
> +			wakeup-source;
> +		};
> +	};
> +
> +	reg_vcc3v3: vcc3v3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc3v3";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +	};
> +
> +	wifi_pwrseq: wifi_pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
> +	};
> +};
> +
> +&ehci0 {
> +	phys = <&usbphy 0>;
> +	phy-names = "usb";
> +	status = "okay";
> +};
> +
> +&ehci1 {
> +	status = "okay";
> +};
> +
> +&mmc0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc0_pins>;
> +	vmmc-supply = <&reg_dcdc1>;
> +	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
> +	disable-wp;
> +	bus-width = <4>;
> +	status = "okay";
> +};
> +
> +&mmc1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc1_pins>;
> +	vmmc-supply = <&reg_dldo4>;
> +	vqmmc-supply = <&reg_eldo1>;
> +	mmc-pwrseq = <&wifi_pwrseq>;
> +	bus-width = <4>;
> +	non-removable;
> +	status = "okay";
> +
> +	rtl8723cs: wifi at 1 {
> +		reg = <1>;
> +	};
> +};
> +
> +&mmc2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
> +	vmmc-supply = <&reg_dcdc1>;
> +	vqmmc-supply = <&reg_eldo1>;
> +	bus-width = <8>;
> +	non-removable;
> +	cap-mmc-hw-reset;
> +	mmc-hs200-1_8v;
> +	status = "okay";
> +};
> +
> +&ohci0 {
> +	phys = <&usbphy 0>;
> +	phy-names = "usb";
> +	status = "okay";
> +};
> +
> +&ohci1 {
> +	status = "okay";
> +};
> +
> +&pwm {
> +	status = "okay";
> +};
> +
> +&r_rsb {
> +	status = "okay";
> +
> +	axp803: pmic at 3a3 {
> +		compatible = "x-powers,axp803";
> +		reg = <0x3a3>;
> +		interrupt-parent = <&r_intc>;
> +		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> +	};
> +};
> +
> +/* The ANX6345 eDP-bridge is on r_i2c */
> +&r_i2c {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&r_i2c_pl89_pins>;
> +	status = "okay";
> +};
> +
> +#include "axp803.dtsi"
> +
> +&reg_aldo1 {
> +	regulator-min-microvolt = <2800000>;
> +	regulator-max-microvolt = <2800000>;
> +	regulator-name = "vcc-csi";
> +};
> +
> +&reg_aldo2 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1800000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "vcc-pl";
> +};
> +
> +&reg_aldo3 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <2700000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "vcc-pll-avcc";
> +};
> +
> +&reg_dc1sw {
> +	regulator-name = "vcc-lcd";
> +};
> +
> +&reg_dcdc1 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <3300000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "vcc-3v3";
> +};
> +
> +&reg_dcdc2 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1000000>;
> +	regulator-max-microvolt = <1300000>;
> +	regulator-name = "vdd-cpux";
> +};
> +
> +/* DCDC3 is polyphased with DCDC2 */
> +
> +&reg_dcdc5 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1200000>;
> +	regulator-max-microvolt = <1200000>;
> +	regulator-name = "vcc-dram";
> +};
> +
> +&reg_dcdc6 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1100000>;
> +	regulator-max-microvolt = <1100000>;
> +	regulator-name = "vdd-sys";
> +};
> +
> +&reg_dldo1 {
> +	regulator-min-microvolt = <3300000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "vcc-hdmi";
> +};
> +
> +&reg_dldo2 {
> +	regulator-min-microvolt = <2500000>;
> +	regulator-max-microvolt = <2500000>;
> +	regulator-name = "vcc-edp";
> +};
> +
> +&reg_dldo3 {
> +	regulator-min-microvolt = <3300000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "avdd-csi";
> +};
> +
> +&reg_dldo4 {
> +	regulator-min-microvolt = <3300000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "vcc-wifi";
> +};
> +
> +&reg_eldo1 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1800000>;
> +	regulator-max-microvolt = <1800000>;
> +	regulator-name = "cpvdd";
> +};
> +
> +&reg_eldo3 {
> +	regulator-min-microvolt = <1800000>;
> +	regulator-max-microvolt = <1800000>;
> +	regulator-name = "vdd-1v8-csi";
> +};
> +
> +&reg_fldo1 {
> +	regulator-min-microvolt = <1200000>;
> +	regulator-max-microvolt = <1200000>;
> +	regulator-name = "vcc-1v2-hsic";
> +};
> +
> +&reg_fldo2 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1100000>;
> +	regulator-max-microvolt = <1100000>;
> +	regulator-name = "vdd-cpus";
> +};
> +
> +&reg_ldo_io0 {
> +	regulator-min-microvolt = <3300000>;
> +	regulator-max-microvolt = <3300000>;
> +	regulator-name = "vcc-usb";
> +	status = "okay";
> +};
> +
> +&reg_rtc_ldo {
> +	regulator-name = "vcc-rtc";
> +};
> +
> +&simplefb_hdmi {
> +	vcc-hdmi-supply = <&reg_dldo1>;
> +};
> +
> +&uart0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart0_pb_pins>;
> +	status = "okay";
> +};
> +
> +&usb_otg {
> +	dr_mode = "host";
> +};
> +
> +&usbphy {
> +	usb0_vbus-supply = <&reg_ldo_io0>;
> +	usb1_vbus-supply = <&reg_ldo_io0>;
> +	status = "okay";
> +};
> diff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig
> new file mode 100644
> index 0000000000..5294dbd2eb
> --- /dev/null
> +++ b/configs/pinebook_defconfig
> @@ -0,0 +1,22 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_SUNXI=y
> +CONFIG_SPL=y
> +CONFIG_MACH_SUN50I=y
> +CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
> +CONFIG_DRAM_CLK=552
> +CONFIG_DRAM_ZQ=3881949
> +CONFIG_MMC_SUNXI_SLOT_EXTRA=2
> +CONFIG_R_I2C_ENABLE=y
> +# CONFIG_CMD_FLASH is not set
> +# CONFIG_SPL_DOS_PARTITION is not set
> +# CONFIG_SPL_EFI_PARTITION is not set
> +CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook"
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_PWM=y
> +CONFIG_PWM_SUNXI=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
> +# CONFIG_USB_GADGET is not set
> +CONFIG_VIDEO_BRIDGE=y
> +CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
> 

-- 
Loic Devulder <ldevulder@suse.com> | ldevulder at irc
0x175A963893C85F55 | D220 DEF5 56A3 DE00 9DAA 78BA 175A 9638 93C8 5F55
Senior QA Engineer | Container & Storage Solutions Quality Assurance
team (qa-css)
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB,
21284 (AG Nuernberg)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181029/3e93d0af/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook
  2018-10-29 15:29   ` Loic Devulder
@ 2018-10-29 16:59     ` Andre Przywara
  0 siblings, 0 replies; 15+ messages in thread
From: Andre Przywara @ 2018-10-29 16:59 UTC (permalink / raw)
  To: u-boot

On Mon, 29 Oct 2018 16:29:43 +0100
Loic Devulder <ldevulder@suse.de> wrote:

> Hi!
> 
> On 10/28/18 10:19 PM, Vasily Khoruzhick wrote:
> > Pinebook is a laptop produced by Pine64, with USB-connected
> > keyboard, USB-connected touchpad and an eDP LCD panel connected via
> > a RGB-eDP bridge from Analogix.
> > 
> > Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> > Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
> > Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
> > Cc: Vagrant Cascadian <vagrant@debian.org>
> > ---
> >  arch/arm/dts/Makefile                        |   1 +
> >  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
> >  arch/arm/dts/sun50i-a64-pinebook.dts         | 294
> > +++++++++++++++++++ configs/pinebook_defconfig                   |
> > 22 ++ 4 files changed, 332 insertions(+)
> >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
> >  create mode 100644 configs/pinebook_defconfig
> > 
> > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> > index 0de6234eec..94ec15a8ac 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \
> >  	sun50i-a64-orangepi-win.dtb \
> >  	sun50i-a64-pine64-plus.dtb \
> >  	sun50i-a64-pine64.dtb \
> > +	sun50i-a64-pinebook.dtb \
> >  	sun50i-a64-sopine-baseboard.dtb
> >  dtb-$(CONFIG_MACH_SUN9I) += \
> >  	sun9i-a80-optimus.dtb \
> > diff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> > b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file mode 100644
> > index 0000000000..a99b7171d0
> > --- /dev/null
> > +++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> > @@ -0,0 +1,15 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
> > + *
> > + */
> > +
> > +/* The ANX6345 eDP-bridge is on r_i2c */
> > +&r_i2c {
> > +	anx6345: edp-bridge at 38 {
> > +		compatible = "analogix,anx6345";
> > +		reg = <0x38>;
> > +		reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24
> > */
> > +		status = "okay";
> > +	};
> > +};  
> 
> Maybe I missed something but I don't see when this dtsi file is used
> or included.

Yeah, that's some non-obvious U-Boot build magic:
Whenever there is a file which has "-u-boot.dtsi" appended to
certain .dts filename stubs, U-Boot includes this file when building
the .dtb. This is supposed to be used to add U-Boot specific DT nodes
or properties to some otherwise unchanged (read: Linux mainline) DTs.
Check scripts/Makefile.lib and search for u-boot.dtsi for the source.

Cheers,
Andre.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
                   ` (4 preceding siblings ...)
  2018-10-28 21:19 ` [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook Vasily Khoruzhick
@ 2018-10-30 21:36 ` Vagrant Cascadian
  2018-11-03 18:55   ` Dennis Gilmore
  5 siblings, 1 reply; 15+ messages in thread
From: Vagrant Cascadian @ 2018-10-30 21:36 UTC (permalink / raw)
  To: u-boot

Tested series applied to u-boot 2018.11-rc3 on pinebook, both with
reboot and cold boot.

Thanks for all the work on it!

Tested-by: Vagrant Cascadian <vagrant@debian.org>

On 2018-10-28, Vasily Khoruzhick wrote:
> This series adds support for the Pinebook, an allwinner A64 laptop
> produced by Pine64. It also syncs sun50i-a64.dtsi with linux,
> adds support for mmc delay calibration, R_I2C controller,
> and addresses the issue with activating video bridge when any of
> GPIOs is missing.
>
> v2: - sync sun50i-a64.dtsi with linux instead of adding missing nodes
>     - take sun50i-a64-pinebook.dts from linux
>     - don't introduce new Kconfig for A64 MMC calibration
>     - improve code in video bridge uclass to check for presensce of
>       GPIO instead of ingoring EINVAL errors
> v3: - enable calibration for H6 as well
>     - init ret variable in video_bridge_set_active()
>     - fix order of dts files Makefile
>     - split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
>     - drop speaker_amp node from pinebook dts
>     - drop unnecessary options from defconfig
> v4: - sync device tree files with linux-next
>
> Vasily Khoruzhick (5):
>   mmc: sunxi: add support for automatic delay calibration
>   dm: video: bridge: don't fail to activate bridge if reset or sleep
>     GPIO is missing
>   sunxi: DT: A64: update device tree files for Allwinner A64 SoC
>   sun50i: A64: add support for R_I2C controller
>   sunxi: DT: add support for Pinebook
>
>  arch/arm/dts/Makefile                        |   1 +
>  arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
>  arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
>  arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
>  arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
>  arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
>  arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
>  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
>  arch/arm/dts/sun50i-a64-pinebook.dts         | 294 +++++++++++++++++
>  arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
>  arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
>  arch/arm/dts/sun50i-a64.dtsi                 | 313 +++++++++++++++++--
>  arch/arm/include/asm/arch-sunxi/gpio.h       |   1 +
>  arch/arm/include/asm/arch-sunxi/mmc.h        |   6 +-
>  arch/arm/mach-sunxi/Kconfig                  |   1 +
>  board/sunxi/board.c                          |   6 +
>  configs/pinebook_defconfig                   |  22 ++
>  drivers/mmc/sunxi_mmc.c                      |  21 +-
>  drivers/video/bridge/video-bridge-uclass.c   |  16 +-
>  19 files changed, 1296 insertions(+), 52 deletions(-)
>  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
>  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
>  create mode 100644 configs/pinebook_defconfig
>
> -- 
> 2.19.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181030/4b27f0c9/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-10-30 21:36 ` [U-Boot] [PATCH v4 0/5] Add " Vagrant Cascadian
@ 2018-11-03 18:55   ` Dennis Gilmore
  2018-11-03 20:18     ` Vasily Khoruzhick
  0 siblings, 1 reply; 15+ messages in thread
From: Dennis Gilmore @ 2018-11-03 18:55 UTC (permalink / raw)
  To: u-boot

I have tested the series on my pinebook on top of git commit
99431c1c21685fe63d46b6eac995b78ce9adce0a

I am not sure if video is expected to work or not, in my case it does
not work. 

U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v1.6(release):
NOTICE:  BL31: Built : 09:10:17, Sep 23 2018
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: STUB PMIC setup code called


U-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
Allwinner Technology

CPU:   Allwinner A64 (SUN50I)
Model: Pinebook
DRAM:  2 GiB
MMC:   SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
Loading Environment from FAT... *** Warning - bad CRC, using default
environment

Warning: HDMI PHY init timeout!
Warning: HDMI PHY init timeout!
In:    serial
Out:   serial
Err:   serial

u-boot however works fine and the system is able to boot and the
correct dtb is loaded.

Tested-by: Dennis Gilmore <dennis@ausil.us>

El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
> Tested series applied to u-boot 2018.11-rc3 on pinebook, both with
> reboot and cold boot.
> 
> Thanks for all the work on it!
> 
> Tested-by: Vagrant Cascadian <vagrant@debian.org>
> 
> On 2018-10-28, Vasily Khoruzhick wrote:
> > This series adds support for the Pinebook, an allwinner A64 laptop
> > produced by Pine64. It also syncs sun50i-a64.dtsi with linux,
> > adds support for mmc delay calibration, R_I2C controller,
> > and addresses the issue with activating video bridge when any of
> > GPIOs is missing.
> > 
> > v2: - sync sun50i-a64.dtsi with linux instead of adding missing
> > nodes
> >     - take sun50i-a64-pinebook.dts from linux
> >     - don't introduce new Kconfig for A64 MMC calibration
> >     - improve code in video bridge uclass to check for presensce of
> >       GPIO instead of ingoring EINVAL errors
> > v3: - enable calibration for H6 as well
> >     - init ret variable in video_bridge_set_active()
> >     - fix order of dts files Makefile
> >     - split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
> >     - drop speaker_amp node from pinebook dts
> >     - drop unnecessary options from defconfig
> > v4: - sync device tree files with linux-next
> > 
> > Vasily Khoruzhick (5):
> >   mmc: sunxi: add support for automatic delay calibration
> >   dm: video: bridge: don't fail to activate bridge if reset or
> > sleep
> >     GPIO is missing
> >   sunxi: DT: A64: update device tree files for Allwinner A64 SoC
> >   sun50i: A64: add support for R_I2C controller
> >   sunxi: DT: add support for Pinebook
> > 
> >  arch/arm/dts/Makefile                        |   1 +
> >  arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
> >  arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
> >  arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
> >  arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
> >  arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
> >  arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
> >  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
> >  arch/arm/dts/sun50i-a64-pinebook.dts         | 294
> > +++++++++++++++++
> >  arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
> >  arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
> >  arch/arm/dts/sun50i-a64.dtsi                 | 313
> > +++++++++++++++++--
> >  arch/arm/include/asm/arch-sunxi/gpio.h       |   1 +
> >  arch/arm/include/asm/arch-sunxi/mmc.h        |   6 +-
> >  arch/arm/mach-sunxi/Kconfig                  |   1 +
> >  board/sunxi/board.c                          |   6 +
> >  configs/pinebook_defconfig                   |  22 ++
> >  drivers/mmc/sunxi_mmc.c                      |  21 +-
> >  drivers/video/bridge/video-bridge-uclass.c   |  16 +-
> >  19 files changed, 1296 insertions(+), 52 deletions(-)
> >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
> >  create mode 100644 configs/pinebook_defconfig
> > 
> > -- 
> > 2.19.1
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-11-03 18:55   ` Dennis Gilmore
@ 2018-11-03 20:18     ` Vasily Khoruzhick
  2018-11-03 20:19       ` Vasily Khoruzhick
  0 siblings, 1 reply; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-11-03 20:18 UTC (permalink / raw)
  To: u-boot

Video is supposed to work, but you need ATF from Andre to enable LCD power:

https://github.com/apritzel/arm-trusted-firmware/

On Sat, Nov 3, 2018 at 11:53 AM Dennis Gilmore <dennis@ausil.us> wrote:
>
> I have tested the series on my pinebook on top of git commit
> 99431c1c21685fe63d46b6eac995b78ce9adce0a
>
> I am not sure if video is expected to work or not, in my case it does
> not work.
>
> U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
> DRAM: 2048 MiB
> Trying to boot from MMC1
> NOTICE:  BL31: v1.6(release):
> NOTICE:  BL31: Built : 09:10:17, Sep 23 2018
> NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
> NOTICE:  BL31: STUB PMIC setup code called
>
>
> U-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
> Allwinner Technology
>
> CPU:   Allwinner A64 (SUN50I)
> Model: Pinebook
> DRAM:  2 GiB
> MMC:   SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
> Loading Environment from FAT... *** Warning - bad CRC, using default
> environment
>
> Warning: HDMI PHY init timeout!
> Warning: HDMI PHY init timeout!
> In:    serial
> Out:   serial
> Err:   serial
>
> u-boot however works fine and the system is able to boot and the
> correct dtb is loaded.
>
> Tested-by: Dennis Gilmore <dennis@ausil.us>
>
> El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
> > Tested series applied to u-boot 2018.11-rc3 on pinebook, both with
> > reboot and cold boot.
> >
> > Thanks for all the work on it!
> >
> > Tested-by: Vagrant Cascadian <vagrant@debian.org>
> >
> > On 2018-10-28, Vasily Khoruzhick wrote:
> > > This series adds support for the Pinebook, an allwinner A64 laptop
> > > produced by Pine64. It also syncs sun50i-a64.dtsi with linux,
> > > adds support for mmc delay calibration, R_I2C controller,
> > > and addresses the issue with activating video bridge when any of
> > > GPIOs is missing.
> > >
> > > v2: - sync sun50i-a64.dtsi with linux instead of adding missing
> > > nodes
> > >     - take sun50i-a64-pinebook.dts from linux
> > >     - don't introduce new Kconfig for A64 MMC calibration
> > >     - improve code in video bridge uclass to check for presensce of
> > >       GPIO instead of ingoring EINVAL errors
> > > v3: - enable calibration for H6 as well
> > >     - init ret variable in video_bridge_set_active()
> > >     - fix order of dts files Makefile
> > >     - split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
> > >     - drop speaker_amp node from pinebook dts
> > >     - drop unnecessary options from defconfig
> > > v4: - sync device tree files with linux-next
> > >
> > > Vasily Khoruzhick (5):
> > >   mmc: sunxi: add support for automatic delay calibration
> > >   dm: video: bridge: don't fail to activate bridge if reset or
> > > sleep
> > >     GPIO is missing
> > >   sunxi: DT: A64: update device tree files for Allwinner A64 SoC
> > >   sun50i: A64: add support for R_I2C controller
> > >   sunxi: DT: add support for Pinebook
> > >
> > >  arch/arm/dts/Makefile                        |   1 +
> > >  arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
> > >  arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
> > >  arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
> > >  arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
> > >  arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
> > >  arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
> > >  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
> > >  arch/arm/dts/sun50i-a64-pinebook.dts         | 294
> > > +++++++++++++++++
> > >  arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
> > >  arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
> > >  arch/arm/dts/sun50i-a64.dtsi                 | 313
> > > +++++++++++++++++--
> > >  arch/arm/include/asm/arch-sunxi/gpio.h       |   1 +
> > >  arch/arm/include/asm/arch-sunxi/mmc.h        |   6 +-
> > >  arch/arm/mach-sunxi/Kconfig                  |   1 +
> > >  board/sunxi/board.c                          |   6 +
> > >  configs/pinebook_defconfig                   |  22 ++
> > >  drivers/mmc/sunxi_mmc.c                      |  21 +-
> > >  drivers/video/bridge/video-bridge-uclass.c   |  16 +-
> > >  19 files changed, 1296 insertions(+), 52 deletions(-)
> > >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> > >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
> > >  create mode 100644 configs/pinebook_defconfig
> > >
> > > --
> > > 2.19.1
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-11-03 20:18     ` Vasily Khoruzhick
@ 2018-11-03 20:19       ` Vasily Khoruzhick
  2018-11-03 21:15         ` André Przywara
  0 siblings, 1 reply; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-11-03 20:19 UTC (permalink / raw)
  To: u-boot

On Sat, Nov 3, 2018 at 1:18 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote:
>
> Video is supposed to work, but you need ATF from Andre to enable LCD power:
>
> https://github.com/apritzel/arm-trusted-firmware/

You need "allwinner" branch from this repo.

> On Sat, Nov 3, 2018 at 11:53 AM Dennis Gilmore <dennis@ausil.us> wrote:
> >
> > I have tested the series on my pinebook on top of git commit
> > 99431c1c21685fe63d46b6eac995b78ce9adce0a
> >
> > I am not sure if video is expected to work or not, in my case it does
> > not work.
> >
> > U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
> > DRAM: 2048 MiB
> > Trying to boot from MMC1
> > NOTICE:  BL31: v1.6(release):
> > NOTICE:  BL31: Built : 09:10:17, Sep 23 2018
> > NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
> > NOTICE:  BL31: STUB PMIC setup code called
> >
> >
> > U-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
> > Allwinner Technology
> >
> > CPU:   Allwinner A64 (SUN50I)
> > Model: Pinebook
> > DRAM:  2 GiB
> > MMC:   SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
> > Loading Environment from FAT... *** Warning - bad CRC, using default
> > environment
> >
> > Warning: HDMI PHY init timeout!
> > Warning: HDMI PHY init timeout!
> > In:    serial
> > Out:   serial
> > Err:   serial
> >
> > u-boot however works fine and the system is able to boot and the
> > correct dtb is loaded.
> >
> > Tested-by: Dennis Gilmore <dennis@ausil.us>
> >
> > El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
> > > Tested series applied to u-boot 2018.11-rc3 on pinebook, both with
> > > reboot and cold boot.
> > >
> > > Thanks for all the work on it!
> > >
> > > Tested-by: Vagrant Cascadian <vagrant@debian.org>
> > >
> > > On 2018-10-28, Vasily Khoruzhick wrote:
> > > > This series adds support for the Pinebook, an allwinner A64 laptop
> > > > produced by Pine64. It also syncs sun50i-a64.dtsi with linux,
> > > > adds support for mmc delay calibration, R_I2C controller,
> > > > and addresses the issue with activating video bridge when any of
> > > > GPIOs is missing.
> > > >
> > > > v2: - sync sun50i-a64.dtsi with linux instead of adding missing
> > > > nodes
> > > >     - take sun50i-a64-pinebook.dts from linux
> > > >     - don't introduce new Kconfig for A64 MMC calibration
> > > >     - improve code in video bridge uclass to check for presensce of
> > > >       GPIO instead of ingoring EINVAL errors
> > > > v3: - enable calibration for H6 as well
> > > >     - init ret variable in video_bridge_set_active()
> > > >     - fix order of dts files Makefile
> > > >     - split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
> > > >     - drop speaker_amp node from pinebook dts
> > > >     - drop unnecessary options from defconfig
> > > > v4: - sync device tree files with linux-next
> > > >
> > > > Vasily Khoruzhick (5):
> > > >   mmc: sunxi: add support for automatic delay calibration
> > > >   dm: video: bridge: don't fail to activate bridge if reset or
> > > > sleep
> > > >     GPIO is missing
> > > >   sunxi: DT: A64: update device tree files for Allwinner A64 SoC
> > > >   sun50i: A64: add support for R_I2C controller
> > > >   sunxi: DT: add support for Pinebook
> > > >
> > > >  arch/arm/dts/Makefile                        |   1 +
> > > >  arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
> > > >  arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
> > > >  arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
> > > >  arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
> > > >  arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
> > > >  arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
> > > >  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
> > > >  arch/arm/dts/sun50i-a64-pinebook.dts         | 294
> > > > +++++++++++++++++
> > > >  arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
> > > >  arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
> > > >  arch/arm/dts/sun50i-a64.dtsi                 | 313
> > > > +++++++++++++++++--
> > > >  arch/arm/include/asm/arch-sunxi/gpio.h       |   1 +
> > > >  arch/arm/include/asm/arch-sunxi/mmc.h        |   6 +-
> > > >  arch/arm/mach-sunxi/Kconfig                  |   1 +
> > > >  board/sunxi/board.c                          |   6 +
> > > >  configs/pinebook_defconfig                   |  22 ++
> > > >  drivers/mmc/sunxi_mmc.c                      |  21 +-
> > > >  drivers/video/bridge/video-bridge-uclass.c   |  16 +-
> > > >  19 files changed, 1296 insertions(+), 52 deletions(-)
> > > >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
> > > >  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
> > > >  create mode 100644 configs/pinebook_defconfig
> > > >
> > > > --
> > > > 2.19.1
> > >
> > > _______________________________________________
> > > U-Boot mailing list
> > > U-Boot at lists.denx.de
> > > https://lists.denx.de/listinfo/u-boot
> >

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-11-03 20:19       ` Vasily Khoruzhick
@ 2018-11-03 21:15         ` André Przywara
  2018-11-04  0:12           ` Vasily Khoruzhick
  0 siblings, 1 reply; 15+ messages in thread
From: André Przywara @ 2018-11-03 21:15 UTC (permalink / raw)
  To: u-boot

On 11/3/18 8:19 PM, Vasily Khoruzhick wrote:
> On Sat, Nov 3, 2018 at 1:18 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote:
>>
>> Video is supposed to work, but you need ATF from Andre to enable LCD power:
>>
>> https://github.com/apritzel/arm-trusted-firmware/
> 
> You need "allwinner" branch from this repo.

I deliberately switched the standard branch away, since everything is
merged in mainline ATF now (including PMIC support). I will post U-Boot
patches to change the instructions soon, but just use the master branch
from the official repo (and report back any issues!):
https://github.com/ARM-Software/arm-trusted-firmware.git

You might need the latest DT in U-Boot (patches are queued, AFAIK) to
let ATF know about your PMIC requirements.

Cheers,
Andre

>> On Sat, Nov 3, 2018 at 11:53 AM Dennis Gilmore <dennis@ausil.us> wrote:
>>>
>>> I have tested the series on my pinebook on top of git commit
>>> 99431c1c21685fe63d46b6eac995b78ce9adce0a
>>>
>>> I am not sure if video is expected to work or not, in my case it does
>>> not work.
>>>
>>> U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
>>> DRAM: 2048 MiB
>>> Trying to boot from MMC1
>>> NOTICE:  BL31: v1.6(release):
>>> NOTICE:  BL31: Built : 09:10:17, Sep 23 2018
>>> NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
>>> NOTICE:  BL31: STUB PMIC setup code called
>>>
>>>
>>> U-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
>>> Allwinner Technology
>>>
>>> CPU:   Allwinner A64 (SUN50I)
>>> Model: Pinebook
>>> DRAM:  2 GiB
>>> MMC:   SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
>>> Loading Environment from FAT... *** Warning - bad CRC, using default
>>> environment
>>>
>>> Warning: HDMI PHY init timeout!
>>> Warning: HDMI PHY init timeout!
>>> In:    serial
>>> Out:   serial
>>> Err:   serial
>>>
>>> u-boot however works fine and the system is able to boot and the
>>> correct dtb is loaded.
>>>
>>> Tested-by: Dennis Gilmore <dennis@ausil.us>
>>>
>>> El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
>>>> Tested series applied to u-boot 2018.11-rc3 on pinebook, both with
>>>> reboot and cold boot.
>>>>
>>>> Thanks for all the work on it!
>>>>
>>>> Tested-by: Vagrant Cascadian <vagrant@debian.org>
>>>>
>>>> On 2018-10-28, Vasily Khoruzhick wrote:
>>>>> This series adds support for the Pinebook, an allwinner A64 laptop
>>>>> produced by Pine64. It also syncs sun50i-a64.dtsi with linux,
>>>>> adds support for mmc delay calibration, R_I2C controller,
>>>>> and addresses the issue with activating video bridge when any of
>>>>> GPIOs is missing.
>>>>>
>>>>> v2: - sync sun50i-a64.dtsi with linux instead of adding missing
>>>>> nodes
>>>>>     - take sun50i-a64-pinebook.dts from linux
>>>>>     - don't introduce new Kconfig for A64 MMC calibration
>>>>>     - improve code in video bridge uclass to check for presensce of
>>>>>       GPIO instead of ingoring EINVAL errors
>>>>> v3: - enable calibration for H6 as well
>>>>>     - init ret variable in video_bridge_set_active()
>>>>>     - fix order of dts files Makefile
>>>>>     - split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
>>>>>     - drop speaker_amp node from pinebook dts
>>>>>     - drop unnecessary options from defconfig
>>>>> v4: - sync device tree files with linux-next
>>>>>
>>>>> Vasily Khoruzhick (5):
>>>>>   mmc: sunxi: add support for automatic delay calibration
>>>>>   dm: video: bridge: don't fail to activate bridge if reset or
>>>>> sleep
>>>>>     GPIO is missing
>>>>>   sunxi: DT: A64: update device tree files for Allwinner A64 SoC
>>>>>   sun50i: A64: add support for R_I2C controller
>>>>>   sunxi: DT: add support for Pinebook
>>>>>
>>>>>  arch/arm/dts/Makefile                        |   1 +
>>>>>  arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++-
>>>>>  arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 +-
>>>>>  arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++-
>>>>>  arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 +++++-
>>>>>  arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++-
>>>>>  arch/arm/dts/sun50i-a64-pine64.dts           |  32 +-
>>>>>  arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 +
>>>>>  arch/arm/dts/sun50i-a64-pinebook.dts         | 294
>>>>> +++++++++++++++++
>>>>>  arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 +-
>>>>>  arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 +
>>>>>  arch/arm/dts/sun50i-a64.dtsi                 | 313
>>>>> +++++++++++++++++--
>>>>>  arch/arm/include/asm/arch-sunxi/gpio.h       |   1 +
>>>>>  arch/arm/include/asm/arch-sunxi/mmc.h        |   6 +-
>>>>>  arch/arm/mach-sunxi/Kconfig                  |   1 +
>>>>>  board/sunxi/board.c                          |   6 +
>>>>>  configs/pinebook_defconfig                   |  22 ++
>>>>>  drivers/mmc/sunxi_mmc.c                      |  21 +-
>>>>>  drivers/video/bridge/video-bridge-uclass.c   |  16 +-
>>>>>  19 files changed, 1296 insertions(+), 52 deletions(-)
>>>>>  create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
>>>>>  create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
>>>>>  create mode 100644 configs/pinebook_defconfig
>>>>>
>>>>> --
>>>>> 2.19.1
>>>>
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> https://lists.denx.de/listinfo/u-boot
>>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-11-03 21:15         ` André Przywara
@ 2018-11-04  0:12           ` Vasily Khoruzhick
  2018-11-05 15:30             ` Dennis Gilmore
  0 siblings, 1 reply; 15+ messages in thread
From: Vasily Khoruzhick @ 2018-11-04  0:12 UTC (permalink / raw)
  To: u-boot

On Sat, Nov 3, 2018 at 2:15 PM André Przywara <andre.przywara@arm.com> wrote:
>
> On 11/3/18 8:19 PM, Vasily Khoruzhick wrote:
> >
> > You need "allwinner" branch from this repo.
>
> I deliberately switched the standard branch away, since everything is
> merged in mainline ATF now (including PMIC support). I will post U-Boot
> patches to change the instructions soon, but just use the master branch
> from the official repo (and report back any issues!):
> https://github.com/ARM-Software/arm-trusted-firmware.git
>
> You might need the latest DT in U-Boot (patches are queued, AFAIK) to
> let ATF know about your PMIC requirements.

Thanks, I just tested it - and my patches work fine with ATF from official repo.

> Cheers,
> Andre
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v4 0/5] Add support for Pinebook
  2018-11-04  0:12           ` Vasily Khoruzhick
@ 2018-11-05 15:30             ` Dennis Gilmore
  0 siblings, 0 replies; 15+ messages in thread
From: Dennis Gilmore @ 2018-11-05 15:30 UTC (permalink / raw)
  To: u-boot

El sáb, 03-11-2018 a las 17:12 -0700, Vasily Khoruzhick escribió:
> On Sat, Nov 3, 2018 at 2:15 PM André Przywara <andre.przywara@arm.com
> > wrote:
> > On 11/3/18 8:19 PM, Vasily Khoruzhick wrote:
> > > You need "allwinner" branch from this repo.
> > 
> > I deliberately switched the standard branch away, since everything
> > is
> > merged in mainline ATF now (including PMIC support). I will post U-
> > Boot
> > patches to change the instructions soon, but just use the master
> > branch
> > from the official repo (and report back any issues!):
> > https://github.com/ARM-Software/arm-trusted-firmware.git
> > 
> > You might need the latest DT in U-Boot (patches are queued, AFAIK)
> > to
> > let ATF know about your PMIC requirements.
> 
> Thanks, I just tested it - and my patches work fine with ATF from
> official repo.

I have just tested with ATF from the official repo and it all works.

Thanks

Dennis

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2018-11-05 15:30 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-28 21:18 [U-Boot] [PATCH v4 0/5] Add support for Pinebook Vasily Khoruzhick
2018-10-28 21:18 ` [U-Boot] [PATCH v4 1/5] mmc: sunxi: add support for automatic delay calibration Vasily Khoruzhick
2018-10-28 21:18 ` [U-Boot] [PATCH v4 2/5] dm: video: bridge: don't fail to activate bridge if reset or sleep GPIO is missing Vasily Khoruzhick
2018-10-28 21:18 ` [U-Boot] [PATCH v4 3/5] sunxi: DT: A64: update device tree files for Allwinner A64 SoC Vasily Khoruzhick
2018-10-28 21:19 ` [U-Boot] [PATCH v4 4/5] sun50i: A64: add support for R_I2C controller Vasily Khoruzhick
2018-10-28 21:19 ` [U-Boot] [PATCH v4 5/5] sunxi: DT: add support for Pinebook Vasily Khoruzhick
2018-10-29 15:29   ` Loic Devulder
2018-10-29 16:59     ` Andre Przywara
2018-10-30 21:36 ` [U-Boot] [PATCH v4 0/5] Add " Vagrant Cascadian
2018-11-03 18:55   ` Dennis Gilmore
2018-11-03 20:18     ` Vasily Khoruzhick
2018-11-03 20:19       ` Vasily Khoruzhick
2018-11-03 21:15         ` André Przywara
2018-11-04  0:12           ` Vasily Khoruzhick
2018-11-05 15:30             ` Dennis Gilmore

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.