From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:56303) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gjuiB-0003E6-Ju for guix-patches@gnu.org; Wed, 16 Jan 2019 18:35:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gjui6-0007tl-Ft for guix-patches@gnu.org; Wed, 16 Jan 2019 18:35:07 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:34717) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gjui6-0007tH-BG for guix-patches@gnu.org; Wed, 16 Jan 2019 18:35:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gjui5-000193-SH for guix-patches@gnu.org; Wed, 16 Jan 2019 18:35:01 -0500 Subject: [bug#34111] [PATCH] gnu: u-boot: Update to 2019.01. Resent-Message-ID: Received: from eggs.gnu.org ([209.51.188.92]:55403) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gjuhZ-0002dc-WC for guix-patches@gnu.org; Wed, 16 Jan 2019 18:34:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gjuVe-0007bk-6H for guix-patches@gnu.org; Wed, 16 Jan 2019 18:22:15 -0500 Received: from cascadia.aikidev.net ([173.255.214.101]:53730) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gjuVc-0007Ti-Kp for guix-patches@gnu.org; Wed, 16 Jan 2019 18:22:09 -0500 Received: from localhost (unknown [IPv6:2600:3c01:e000:21:21:21:0:100e]) (Authenticated sender: vagrant@cascadia.debian.net) by cascadia.aikidev.net (Postfix) with ESMTPSA id 296A61AAC0 for ; Wed, 16 Jan 2019 15:22:00 -0800 (PST) From: Vagrant Cascadian Date: Wed, 16 Jan 2019 15:21:52 -0800 Message-ID: <87r2dcchnz.fsf@ponder> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 34111@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable * gnu/packages/bootloaders.scm (u-boot): Update to 2019.01. (u-boot-tools): Disable CONFIG_SOUND in sandbox configs. (u-boot-pinebook): Drop patches applied upstream. * gnu/packages/patches/u-boot-pinebook-*: Drop obsolete patches. * gnu/local.mk: Drop u-boot-pinebook patches. =2D-- gnu/local.mk | 6 - gnu/packages/bootloaders.scm | 24 +- .../u-boot-pinebook-a64-update-dts.patch | 1485 ----------------- .../patches/u-boot-pinebook-dts.patch | 388 ----- .../u-boot-pinebook-mmc-calibration.patch | 98 -- .../u-boot-pinebook-r_i2c-controller.patch | 70 - .../patches/u-boot-pinebook-syscon-node.patch | 38 - .../u-boot-pinebook-video-bridge.patch | 50 - 8 files changed, 8 insertions(+), 2151 deletions(-) delete mode 100644 gnu/packages/patches/u-boot-pinebook-a64-update-dts.pat= ch delete mode 100644 gnu/packages/patches/u-boot-pinebook-dts.patch delete mode 100644 gnu/packages/patches/u-boot-pinebook-mmc-calibration.pa= tch delete mode 100644 gnu/packages/patches/u-boot-pinebook-r_i2c-controller.p= atch delete mode 100644 gnu/packages/patches/u-boot-pinebook-syscon-node.patch delete mode 100644 gnu/packages/patches/u-boot-pinebook-video-bridge.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4fed45174..9f6df0d7e 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -1230,12 +1230,6 @@ dist_patch_DATA =3D \ %D%/packages/patches/totem-meson-easy-codec.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/twinkle-include-qregexpvalidator.patch \ =2D %D%/packages/patches/u-boot-pinebook-a64-update-dts.patch \ =2D %D%/packages/patches/u-boot-pinebook-mmc-calibration.patch \ =2D %D%/packages/patches/u-boot-pinebook-r_i2c-controller.patch \ =2D %D%/packages/patches/u-boot-pinebook-dts.patch \ =2D %D%/packages/patches/u-boot-pinebook-syscon-node.patch \ =2D %D%/packages/patches/u-boot-pinebook-video-bridge.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \ %D%/packages/patches/unzip-CVE-2014-8141.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 1cf7720a7..2a4f43f87 100644 =2D-- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -376,7 +376,7 @@ tree binary files. These are board description files u= sed by Linux and BSD.") (define u-boot (package (name "u-boot") =2D (version "2018.11") + (version "2019.01") (source (origin (method url-fetch) (uri (string-append @@ -384,7 +384,7 @@ tree binary files. These are board description files u= sed by Linux and BSD.") "u-boot-" version ".tar.bz2")) (sha256 (base32 =2D "0znkwljfwwn4y7j20pzz4ilqw8znphrfxns0x1lwdzh3xbr96z3k"))= )) + "08hwsmh5xsb1gcxsv8gvx00bai938dm5y3889n8jif3a8rd7xgah")))) (native-inputs `(("bc" ,bc) ("bison" ,bison) @@ -440,6 +440,11 @@ also initializes the boards (RAM etc).") (("def test_ctrl_c") "@pytest.mark.skip(reason=3D'Guix has problems with SIGINT') def test_ctrl_c")) + ;; This test requires a sound system, which is un-used in u-b= oot-tools. + (for-each (lambda (file) + (substitute* file + (("CONFIG_SOUND=3Dy") "CONFIG_SOUND=3Dn"= ))) + (find-files "configs" "sandbox_.*defconfig$"= )) #t)) (replace 'configure (lambda* (#:key make-flags #:allow-other-keys) @@ -595,20 +600,7 @@ board-independent tools."))) (make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu")) =20 (define-public u-boot-pinebook =2D (let ((base (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu= "))) =2D (package =2D (inherit base) =2D (source (origin =2D (inherit (package-source u-boot)) =2D (patches (search-patches =2D ;; Add patches to enable Pinebook support from s= unxi =2D ;; maintainer tree: git://git.denx.de/u-boot-sun= xi.git =2D "u-boot-pinebook-a64-update-dts.patch" =2D "u-boot-pinebook-syscon-node.patch" =2D "u-boot-pinebook-mmc-calibration.patch" =2D "u-boot-pinebook-video-bridge.patch" =2D "u-boot-pinebook-r_i2c-controller.patch" =2D "u-boot-pinebook-dts.patch"))))))) + (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu")) =20 (define-public u-boot-bananapi-m2-ultra (make-u-boot-package "Bananapi_M2_Ultra" "arm-linux-gnueabihf")) diff --git a/gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch b/gn= u/packages/patches/u-boot-pinebook-a64-update-dts.patch deleted file mode 100644 index 9d0a08c8b..000000000 =2D-- a/gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch +++ /dev/null @@ -1,1485 +0,0 @@ =2DFrom 1b39a1834ed182bbd8036a5cd74a9ea111fa4691 Mon Sep 17 00:00:00 2001 =2DFrom: Andre Przywara =2DDate: Mon, 29 Oct 2018 00:56:47 +0000 =2DSubject: [PATCH 03/13] sunxi: A64: Update .dts/.dtsi files =2DMIME-Version: 1.0 =2DContent-Type: text/plain; charset=3DUTF-8 =2DContent-Transfer-Encoding: 8bit =2D =2DUpdate the .dts/.dtsi file from the Linux sunxi/dt64-for-4.20 tree: =2Dcommit 679294497be31596e1c9c61507746d72b6b05f26 =2DAuthor: Rodrigo Exterck=C3=B6tter Tj=C3=A4der =2DDate: Wed Sep 26 19:48:24 2018 +0000 =2D arm64: dts: allwinner: a64: a64-olinuxino: set the PHY TX delay =2D =2DSigned-off-by: Andre Przywara =2DAcked-by: Maxime Ripard =2DReviewed-by: Jagan Teki =2D--- =2D arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++++++- =2D arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 ++- =2D arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++++- =2D arch/arm/dts/sun50i-a64-olinuxino.dts | 103 ++++++++- =2D arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++++++- =2D arch/arm/dts/sun50i-a64-pine64.dts | 32 ++- =2D arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 ++- =2D arch/arm/dts/sun50i-a64-sopine.dtsi | 15 ++ =2D arch/arm/dts/sun50i-a64.dtsi | 313 ++++++++++++++++++++= +++++-- =2D 9 files changed, 920 insertions(+), 45 deletions(-) =2D =2Ddiff --git a/arch/arm/dts/sun50i-a64-amarula-relic.dts b/arch/arm/dts/su= n50i-a64-amarula-relic.dts =2Dindex f3b4e93ece..6cb2b7f0c8 100644 =2D--- a/arch/arm/dts/sun50i-a64-amarula-relic.dts =2D+++ b/arch/arm/dts/sun50i-a64-amarula-relic.dts =2D@@ -22,11 +22,11 @@ =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D=20 =2D- reg_vcc3v3: vcc3v3 { =2D- compatible =3D "regulator-fixed"; =2D- regulator-name =3D "vcc3v3"; =2D- regulator-min-microvolt =3D <3300000>; =2D- regulator-max-microvolt =3D <3300000>; =2D+ wifi_pwrseq: wifi-pwrseq { =2D+ compatible =3D "mmc-pwrseq-simple"; =2D+ clocks =3D <&rtc 1>; =2D+ clock-names =3D "ext_clock"; =2D+ reset-gpios =3D <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */ =2D }; =2D }; =2D=20 =2D@@ -34,10 +34,34 @@ =2D status =3D "okay"; =2D }; =2D=20 =2D+&mmc1 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&mmc1_pins>; =2D+ vmmc-supply =3D <®_dcdc1>; =2D+ /* =2D+ * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but =2D+ * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with =2D+ * 0Ohm register to vcc-io-wifi so eldo1 is used. =2D+ */ =2D+ vqmmc-supply =3D <®_eldo1>; =2D+ mmc-pwrseq =3D <&wifi_pwrseq>; =2D+ bus-width =3D <4>; =2D+ non-removable; =2D+ status =3D "okay"; =2D+ =2D+ brcmf: wifi@1 { =2D+ reg =3D <1>; =2D+ compatible =3D "brcm,bcm4329-fmac"; =2D+ interrupt-parent =3D <&r_pio>; =2D+ interrupts =3D <0 3 IRQ_TYPE_LEVEL_LOW>; /* WL-WAKE-AP: PL3 */ =2D+ interrupt-names =3D "host-wake"; =2D+ }; =2D+}; =2D+ =2D &mmc2 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&mmc2_pins>; =2D- vmmc-supply =3D <®_vcc3v3>; =2D+ vmmc-supply =3D <®_dcdc1>; =2D bus-width =3D <8>; =2D non-removable; =2D cap-mmc-hw-reset; =2D@@ -48,9 +72,138 @@ =2D status =3D "okay"; =2D }; =2D=20 =2D+&r_rsb { =2D+ status =3D "okay"; =2D+ =2D+ axp803: pmic@3a3 { =2D+ compatible =3D "x-powers,axp803"; =2D+ reg =3D <0x3a3>; =2D+ interrupt-parent =3D <&r_intc>; =2D+ interrupts =3D <0 IRQ_TYPE_LEVEL_LOW>; =2D+ x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ =2D+ }; =2D+}; =2D+ =2D+#include "axp803.dtsi" =2D+ =2D+®_aldo1 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <2800000>; =2D+ regulator-max-microvolt =3D <2800000>; =2D+ regulator-name =3D "avdd-csi"; =2D+}; =2D+ =2D+®_aldo2 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1800000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-pl"; =2D+}; =2D+ =2D+®_aldo3 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <3000000>; =2D+ regulator-max-microvolt =3D <3000000>; =2D+ regulator-name =3D "vcc-pll-avcc"; =2D+}; =2D+ =2D+®_dcdc1 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-3v3"; =2D+}; =2D+ =2D+®_dcdc2 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1040000>; =2D+ regulator-max-microvolt =3D <1300000>; =2D+ regulator-name =3D "vdd-cpux"; =2D+}; =2D+ =2D+/* DCDC3 is polyphased with DCDC2 */ =2D+ =2D+®_dcdc5 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1500000>; =2D+ regulator-max-microvolt =3D <1500000>; =2D+ regulator-name =3D "vcc-dram"; =2D+}; =2D+ =2D+®_dcdc6 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1100000>; =2D+ regulator-max-microvolt =3D <1100000>; =2D+ regulator-name =3D "vdd-sys"; =2D+}; =2D+ =2D+®_dldo1 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-hdmi-dsi-sensor"; =2D+}; =2D+ =2D+®_dldo2 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-mipi"; =2D+}; =2D+ =2D+®_dldo3 { =2D+ regulator-min-microvolt =3D <2800000>; =2D+ regulator-max-microvolt =3D <2800000>; =2D+ regulator-name =3D "dovdd-csi"; =2D+}; =2D+ =2D+®_dldo4 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-wifi-io"; =2D+}; =2D+ =2D+®_drivevbus { =2D+ regulator-name =3D "usb0-vbus"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+®_eldo1 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1800000>; =2D+ regulator-max-microvolt =3D <1800000>; =2D+ regulator-name =3D "cpvdd"; =2D+}; =2D+ =2D+®_eldo3 { =2D+ regulator-min-microvolt =3D <1800000>; =2D+ regulator-max-microvolt =3D <1800000>; =2D+ regulator-name =3D "dvdd-csi"; =2D+}; =2D+ =2D+®_fldo1 { =2D+ regulator-min-microvolt =3D <1200000>; =2D+ regulator-max-microvolt =3D <1200000>; =2D+ regulator-name =3D "vcc-1v2-hsic"; =2D+}; =2D+ =2D+/* =2D+ * The A64 chip cannot work without this regulator off, although =2D+ * it seems to be only driving the AR100 core. =2D+ * Maybe we don't still know well about CPUs domain. =2D+ */ =2D+®_fldo2 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1100000>; =2D+ regulator-max-microvolt =3D <1100000>; =2D+ regulator-name =3D "vdd-cpus"; =2D+}; =2D+ =2D+®_rtc_ldo { =2D+ regulator-name =3D "vcc-rtc"; =2D+}; =2D+ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D status =3D "okay"; =2D }; =2D=20 =2D@@ -61,5 +214,6 @@ =2D=20 =2D &usbphy { =2D usb0_id_det-gpios =3D <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ =2D+ usb0_vbus-supply =3D <®_drivevbus>; =2D status =3D "okay"; =2D }; =2Ddiff --git a/arch/arm/dts/sun50i-a64-bananapi-m64.dts b/arch/arm/dts/sun= 50i-a64-bananapi-m64.dts =2Dindex 0716b14411..ef1c90401b 100644 =2D--- a/arch/arm/dts/sun50i-a64-bananapi-m64.dts =2D+++ b/arch/arm/dts/sun50i-a64-bananapi-m64.dts =2D@@ -60,6 +60,17 @@ =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D=20 =2D+ hdmi-connector { =2D+ compatible =3D "hdmi-connector"; =2D+ type =3D "a"; =2D+ =2D+ port { =2D+ hdmi_con_in: endpoint { =2D+ remote-endpoint =3D <&hdmi_out_con>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D leds { =2D compatible =3D "gpio-leds"; =2D=20 =2D@@ -86,6 +97,10 @@ =2D }; =2D }; =2D=20 =2D+&de { =2D+ status =3D "okay"; =2D+}; =2D+ =2D &ehci0 { =2D status =3D "okay"; =2D }; =2D@@ -103,6 +118,17 @@ =2D status =3D "okay"; =2D }; =2D=20 =2D+&hdmi { =2D+ hvcc-supply =3D <®_dldo1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi_out { =2D+ hdmi_out_con: endpoint { =2D+ remote-endpoint =3D <&hdmi_con_in>; =2D+ }; =2D+}; =2D+ =2D &i2c1 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&i2c1_pins>; =2D@@ -151,7 +177,7 @@ =2D=20 =2D &mmc2 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&mmc2_pins>; =2D+ pinctrl-0 =3D <&mmc2_pins>, <&mmc2_ds_pin>; =2D vmmc-supply =3D <®_dcdc1>; =2D bus-width =3D <8>; =2D non-removable; =2D@@ -296,9 +322,13 @@ =2D regulator-name =3D "vcc-rtc"; =2D }; =2D=20 =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D status =3D "okay"; =2D }; =2D=20 =2Ddiff --git a/arch/arm/dts/sun50i-a64-nanopi-a64.dts b/arch/arm/dts/sun50= i-a64-nanopi-a64.dts =2Dindex e2dce48fa2..31884dbc88 100644 =2D--- a/arch/arm/dts/sun50i-a64-nanopi-a64.dts =2D+++ b/arch/arm/dts/sun50i-a64-nanopi-a64.dts =2D@@ -51,12 +51,44 @@ =2D compatible =3D "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; =2D=20 =2D aliases { =2D+ ethernet0 =3D &emac; =2D serial0 =3D &uart0; =2D }; =2D=20 =2D chosen { =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D+ =2D+ hdmi-connector { =2D+ compatible =3D "hdmi-connector"; =2D+ type =3D "a"; =2D+ =2D+ port { =2D+ hdmi_con_in: endpoint { =2D+ remote-endpoint =3D <&hdmi_out_con>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D+ leds { =2D+ compatible =3D "gpio-leds"; =2D+ =2D+ blue { =2D+ label =3D "nanopi-a64:blue:status"; =2D+ gpios =3D <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ =2D+ }; =2D+ }; =2D+ =2D+ wifi_pwrseq: wifi_pwrseq { =2D+ compatible =3D "mmc-pwrseq-simple"; =2D+ clocks =3D <&rtc 1>; =2D+ clock-names =3D "ext_clock"; =2D+ reset-gpios =3D <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ =2D+ }; =2D+}; =2D+ =2D+&de { =2D+ status =3D "okay"; =2D }; =2D=20 =2D &ehci0 { =2D@@ -67,6 +99,26 @@ =2D status =3D "okay"; =2D }; =2D=20 =2D+&emac { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&rgmii_pins>; =2D+ phy-mode =3D "rgmii"; =2D+ phy-handle =3D <&ext_rgmii_phy>; =2D+ phy-supply =3D <®_dcdc1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi { =2D+ hvcc-supply =3D <®_dldo1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi_out { =2D+ hdmi_out_con: endpoint { =2D+ remote-endpoint =3D <&hdmi_con_in>; =2D+ }; =2D+}; =2D+ =2D /* i2c1 connected with gpio headers like pine64, bananapi */ =2D &i2c1 { =2D pinctrl-names =3D "default"; =2D@@ -78,6 +130,13 @@ =2D bias-pull-up; =2D }; =2D=20 =2D+&mdio { =2D+ ext_rgmii_phy: ethernet-phy@1 { =2D+ compatible =3D "ethernet-phy-ieee802.3-c22"; =2D+ reg =3D <7>; =2D+ }; =2D+}; =2D+ =2D &mmc0 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&mmc0_pins>; =2D@@ -88,6 +147,24 @@ =2D status =3D "okay"; =2D }; =2D=20 =2D+&mmc1 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&mmc1_pins>; =2D+ vmmc-supply =3D <®_dcdc1>; =2D+ vqmmc-supply =3D <®_dldo4>; =2D+ mmc-pwrseq =3D <&wifi_pwrseq>; =2D+ bus-width =3D <4>; =2D+ non-removable; =2D+ status =3D "okay"; =2D+ =2D+ rtl8189etv: wifi@1 { =2D+ reg =3D <1>; =2D+ interrupt-parent =3D <&r_pio>; =2D+ interrupts =3D <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ =2D+ interrupt-names =3D "host-wake"; =2D+ }; =2D+}; =2D+ =2D &ohci0 { =2D status =3D "okay"; =2D }; =2D@@ -125,9 +202,9 @@ =2D=20 =2D ®_dcdc1 { =2D regulator-always-on; =2D- regulator-min-microvolt =3D <3000000>; =2D- regulator-max-microvolt =3D <3000000>; =2D- regulator-name =3D "vcc-3v"; =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-3v3"; =2D }; =2D=20 =2D ®_dcdc2 { =2D@@ -195,9 +272,13 @@ =2D regulator-name =3D "vcc-rtc"; =2D }; =2D=20 =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D status =3D "okay"; =2D }; =2D=20 =2Ddiff --git a/arch/arm/dts/sun50i-a64-olinuxino.dts b/arch/arm/dts/sun50i= -a64-olinuxino.dts =2Dindex 3b3081b10e..f7a4bccaa5 100644 =2D--- a/arch/arm/dts/sun50i-a64-olinuxino.dts =2D+++ b/arch/arm/dts/sun50i-a64-olinuxino.dts =2D@@ -51,6 +51,7 @@ =2D compatible =3D "olimex,a64-olinuxino", "allwinner,sun50i-a64"; =2D=20 =2D aliases { =2D+ ethernet0 =3D &emac; =2D serial0 =3D &uart0; =2D }; =2D=20 =2D@@ -58,12 +59,74 @@ =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D=20 =2D+ hdmi-connector { =2D+ compatible =3D "hdmi-connector"; =2D+ type =3D "a"; =2D+ =2D+ port { =2D+ hdmi_con_in: endpoint { =2D+ remote-endpoint =3D <&hdmi_out_con>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D+ reg_usb1_vbus: usb1-vbus { =2D+ compatible =3D "regulator-fixed"; =2D+ regulator-name =3D "usb1-vbus"; =2D+ regulator-min-microvolt =3D <5000000>; =2D+ regulator-max-microvolt =3D <5000000>; =2D+ regulator-boot-on; =2D+ enable-active-high; =2D+ gpio =3D <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */ =2D+ status =3D "okay"; =2D+ }; =2D+ =2D wifi_pwrseq: wifi_pwrseq { =2D compatible =3D "mmc-pwrseq-simple"; =2D reset-gpios =3D <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ =2D }; =2D }; =2D=20 =2D+&de { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ehci0 { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ehci1 { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&emac { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&rgmii_pins>; =2D+ phy-mode =3D "rgmii"; =2D+ phy-handle =3D <&ext_rgmii_phy>; =2D+ phy-supply =3D <®_dcdc1>; =2D+ allwinner,tx-delay-ps =3D <600>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi { =2D+ hvcc-supply =3D <®_dldo1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi_out { =2D+ hdmi_out_con: endpoint { =2D+ remote-endpoint =3D <&hdmi_con_in>; =2D+ }; =2D+}; =2D+ =2D+&mdio { =2D+ ext_rgmii_phy: ethernet-phy@1 { =2D+ compatible =3D "ethernet-phy-ieee802.3-c22"; =2D+ reg =3D <1>; =2D+ }; =2D+}; =2D+ =2D &mmc0 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&mmc0_pins>; =2D@@ -92,6 +155,14 @@ =2D }; =2D }; =2D=20 =2D+&ohci0 { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ohci1 { =2D+ status =3D "okay"; =2D+}; =2D+ =2D &r_rsb { =2D status =3D "okay"; =2D=20 =2D@@ -100,6 +171,7 @@ =2D reg =3D <0x3a3>; =2D interrupt-parent =3D <&r_intc>; =2D interrupts =3D <0 IRQ_TYPE_LEVEL_LOW>; =2D+ x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ =2D }; =2D }; =2D=20 =2D@@ -142,10 +214,14 @@ =2D=20 =2D /* DCDC3 is polyphased with DCDC2 */ =2D=20 =2D+/* =2D+ * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal =2D+ * 1.35V that the PMIC can drive. =2D+ */ =2D ®_dcdc5 { =2D regulator-always-on; =2D- regulator-min-microvolt =3D <1500000>; =2D- regulator-max-microvolt =3D <1500000>; =2D+ regulator-min-microvolt =3D <1360000>; =2D+ regulator-max-microvolt =3D <1360000>; =2D regulator-name =3D "vcc-ddr3"; =2D }; =2D=20 =2D@@ -180,6 +256,11 @@ =2D regulator-name =3D "vcc-wifi-io"; =2D }; =2D=20 =2D+®_drivevbus { =2D+ regulator-name =3D "usb0-vbus"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D ®_eldo1 { =2D regulator-min-microvolt =3D <1800000>; =2D regulator-max-microvolt =3D <1800000>; =2D@@ -214,8 +295,24 @@ =2D regulator-name =3D "vcc-rtc"; =2D }; =2D=20 =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&usb_otg { =2D+ dr_mode =3D "otg"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&usbphy { =2D status =3D "okay"; =2D+ usb0_id_det-gpios =3D <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ =2D+ usb0_vbus-supply =3D <®_drivevbus>; =2D+ usb1_vbus-supply =3D <®_usb1_vbus>; =2D }; =2Ddiff --git a/arch/arm/dts/sun50i-a64-orangepi-win.dts b/arch/arm/dts/sun= 50i-a64-orangepi-win.dts =2Dindex bf42690a33..b0c64f7579 100644 =2D--- a/arch/arm/dts/sun50i-a64-orangepi-win.dts =2D+++ b/arch/arm/dts/sun50i-a64-orangepi-win.dts =2D@@ -1,5 +1,6 @@ =2D /* =2D * Copyright (C) 2017 Jagan Teki =2D+ * Copyright (C) 2017-2018 Samuel Holland =2D * =2D * This file is dual-licensed: you can use it either under the terms =2D * of the GPL or the X11 license, at your option. Note that this dual =2D@@ -51,23 +52,127 @@ =2D compatible =3D "xunlong,orangepi-win", "allwinner,sun50i-a64"; =2D=20 =2D aliases { =2D+ ethernet0 =3D &emac; =2D serial0 =3D &uart0; =2D+ serial1 =3D &uart1; =2D+ serial2 =3D &uart2; =2D+ serial3 =3D &uart3; =2D+ serial4 =3D &uart4; =2D }; =2D=20 =2D chosen { =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D+ =2D+ hdmi-connector { =2D+ compatible =3D "hdmi-connector"; =2D+ type =3D "a"; =2D+ =2D+ port { =2D+ hdmi_con_in: endpoint { =2D+ remote-endpoint =3D <&hdmi_out_con>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D+ leds { =2D+ compatible =3D "gpio-leds"; =2D+ =2D+ status { =2D+ label =3D "orangepi:green:status"; =2D+ gpios =3D <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ =2D+ }; =2D+ }; =2D+ =2D+ reg_gmac_3v3: gmac-3v3 { =2D+ compatible =3D "regulator-fixed"; =2D+ regulator-name =3D "gmac-3v3"; =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-boot-on; =2D+ enable-active-high; =2D+ gpio =3D <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */ =2D+ status =3D "okay"; =2D+ }; =2D+ =2D+ reg_usb1_vbus: usb1-vbus { =2D+ compatible =3D "regulator-fixed"; =2D+ regulator-name =3D "usb1-vbus"; =2D+ regulator-min-microvolt =3D <5000000>; =2D+ regulator-max-microvolt =3D <5000000>; =2D+ regulator-boot-on; =2D+ enable-active-high; =2D+ gpio =3D <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */ =2D+ status =3D "okay"; =2D+ }; =2D+ =2D+ wifi_pwrseq: wifi_pwrseq { =2D+ compatible =3D "mmc-pwrseq-simple"; =2D+ reset-gpios =3D <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */ =2D+ }; =2D+}; =2D+ =2D+&de { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ehci0 { =2D+ status =3D "okay"; =2D }; =2D=20 =2D &ehci1 { =2D status =3D "okay"; =2D }; =2D=20 =2D+&emac { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&rgmii_pins>; =2D+ phy-mode =3D "rgmii"; =2D+ phy-handle =3D <&ext_rgmii_phy>; =2D+ phy-supply =3D <®_gmac_3v3>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi { =2D+ hvcc-supply =3D <®_dldo1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi_out { =2D+ hdmi_out_con: endpoint { =2D+ remote-endpoint =3D <&hdmi_con_in>; =2D+ }; =2D+}; =2D+ =2D+&mdio { =2D+ ext_rgmii_phy: ethernet-phy@1 { =2D+ compatible =3D "ethernet-phy-ieee802.3-c22"; =2D+ reg =3D <1>; =2D+ }; =2D+}; =2D+ =2D &mmc0 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&mmc0_pins>; =2D vmmc-supply =3D <®_dcdc1>; =2D- cd-gpios =3D <&pio 5 6 GPIO_ACTIVE_LOW>; =2D+ cd-gpios =3D <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ =2D+ disable-wp; =2D+ bus-width =3D <4>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&mmc1 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&mmc1_pins>; =2D+ vmmc-supply =3D <®_dldo2>; =2D+ vqmmc-supply =3D <®_dldo4>; =2D+ mmc-pwrseq =3D <&wifi_pwrseq>; =2D+ bus-width =3D <4>; =2D+ non-removable; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ohci0 { =2D status =3D "okay"; =2D }; =2D=20 =2D@@ -89,9 +194,8 @@ =2D #include "axp803.dtsi" =2D=20 =2D ®_aldo1 { =2D- regulator-always-on; =2D- regulator-min-microvolt =3D <1800000>; =2D- regulator-max-microvolt =3D <3300000>; =2D+ regulator-min-microvolt =3D <2800000>; =2D+ regulator-max-microvolt =3D <2800000>; =2D regulator-name =3D "afvcc-csi"; =2D }; =2D=20 =2D@@ -163,12 +267,23 @@ =2D regulator-name =3D "vcc-wifi-io"; =2D }; =2D=20 =2D+®_drivevbus { =2D+ regulator-name =3D "usb0-vbus"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D ®_eldo1 { =2D regulator-min-microvolt =3D <1800000>; =2D regulator-max-microvolt =3D <1800000>; =2D regulator-name =3D "cpvdd"; =2D }; =2D=20 =2D+®_eldo3 { =2D+ regulator-min-microvolt =3D <1500000>; =2D+ regulator-max-microvolt =3D <1800000>; =2D+ regulator-name =3D "dvdd-csi"; =2D+}; =2D+ =2D ®_fldo1 { =2D regulator-min-microvolt =3D <1200000>; =2D regulator-max-microvolt =3D <1200000>; =2D@@ -191,13 +306,65 @@ =2D regulator-name =3D "vcc-rtc"; =2D }; =2D=20 =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D+&spi0 { =2D+ status =3D "okay"; =2D+ =2D+ spi-flash@0 { =2D+ compatible =3D "mxicy,mx25l1606e", "jedec,spi-nor"; =2D+ reg =3D <0>; =2D+ spi-max-frequency =3D <80000000>; =2D+ m25p,fast-read; =2D+ status =3D "okay"; =2D+ }; =2D+}; =2D+ =2D+/* On debug connector */ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D status =3D "okay"; =2D }; =2D=20 =2D-&usbphy { =2D+/* Bluetooth */ =2D+&uart1 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&uart1_pins>, <&uart1_rts_cts_pins>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+/* On Pi-2 connector, RTS/CTS optional */ =2D+&uart2 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&uart2_pins>; =2D+ status =3D "disabled"; =2D+}; =2D+ =2D+/* On Pi-2 connector, RTS/CTS optional */ =2D+&uart3 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&uart3_pins>; =2D+ status =3D "disabled"; =2D+}; =2D+ =2D+/* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */ =2D+&uart4 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&uart4_pins>; =2D+ status =3D "disabled"; =2D+}; =2D+ =2D+&usb_otg { =2D+ dr_mode =3D "otg"; =2D status =3D "okay"; =2D }; =2D=20 =2D+&usbphy { =2D+ usb0_id_det-gpios =3D <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ =2D+ usb0_vbus-supply =3D <®_drivevbus>; =2D+ usb1_vbus-supply =3D <®_usb1_vbus>; =2D+ status =3D "okay"; =2D+}; =2Ddiff --git a/arch/arm/dts/sun50i-a64-pine64.dts b/arch/arm/dts/sun50i-a6= 4-pine64.dts =2Dindex a75825798a..c077b6c1f4 100644 =2D--- a/arch/arm/dts/sun50i-a64-pine64.dts =2D+++ b/arch/arm/dts/sun50i-a64-pine64.dts =2D@@ -62,6 +62,21 @@ =2D chosen { =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D+ =2D+ hdmi-connector { =2D+ compatible =3D "hdmi-connector"; =2D+ type =3D "a"; =2D+ =2D+ port { =2D+ hdmi_con_in: endpoint { =2D+ remote-endpoint =3D <&hdmi_out_con>; =2D+ }; =2D+ }; =2D+ }; =2D+}; =2D+ =2D+&de { =2D+ status =3D "okay"; =2D }; =2D=20 =2D &ehci0 { =2D@@ -82,6 +97,17 @@ =2D=20 =2D }; =2D=20 =2D+&hdmi { =2D+ hvcc-supply =3D <®_dldo1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi_out { =2D+ hdmi_out_con: endpoint { =2D+ remote-endpoint =3D <&hdmi_con_in>; =2D+ }; =2D+}; =2D+ =2D &i2c1 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&i2c1_pins>; =2D@@ -229,6 +255,10 @@ =2D regulator-name =3D "vcc-rtc"; =2D }; =2D=20 =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D /* On Euler connector */ =2D &spdif { =2D status =3D "disabled"; =2D@@ -237,7 +267,7 @@ =2D /* On Exp and Euler connectors */ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D status =3D "okay"; =2D }; =2D=20 =2Ddiff --git a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts b/arch/arm/dts= /sun50i-a64-sopine-baseboard.dts =2Dindex abe179de35..53fcc9098d 100644 =2D--- a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts =2D+++ b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts =2D@@ -61,6 +61,17 @@ =2D stdout-path =3D "serial0:115200n8"; =2D }; =2D=20 =2D+ hdmi-connector { =2D+ compatible =3D "hdmi-connector"; =2D+ type =3D "a"; =2D+ =2D+ port { =2D+ hdmi_con_in: endpoint { =2D+ remote-endpoint =3D <&hdmi_out_con>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D reg_vcc1v8: vcc1v8 { =2D compatible =3D "regulator-fixed"; =2D regulator-name =3D "vcc1v8"; =2D@@ -69,6 +80,10 @@ =2D }; =2D }; =2D=20 =2D+&de { =2D+ status =3D "okay"; =2D+}; =2D+ =2D &ehci0 { =2D status =3D "okay"; =2D }; =2D@@ -86,6 +101,17 @@ =2D status =3D "okay"; =2D }; =2D=20 =2D+&hdmi { =2D+ hvcc-supply =3D <®_dldo1>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&hdmi_out { =2D+ hdmi_out_con: endpoint { =2D+ remote-endpoint =3D <&hdmi_con_in>; =2D+ }; =2D+}; =2D+ =2D &mdio { =2D ext_rgmii_phy: ethernet-phy@1 { =2D compatible =3D "ethernet-phy-ieee802.3-c22"; =2D@@ -134,9 +160,13 @@ =2D regulator-name =3D "vcc-wifi"; =2D }; =2D=20 =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D &uart0 { =2D pinctrl-names =3D "default"; =2D- pinctrl-0 =3D <&uart0_pins_a>; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D status =3D "okay"; =2D }; =2D=20 =2Ddiff --git a/arch/arm/dts/sun50i-a64-sopine.dtsi b/arch/arm/dts/sun50i-a= 64-sopine.dtsi =2Dindex 43418bd881..6723b8695e 100644 =2D--- a/arch/arm/dts/sun50i-a64-sopine.dtsi =2D+++ b/arch/arm/dts/sun50i-a64-sopine.dtsi =2D@@ -45,6 +45,8 @@ =2D=20 =2D #include "sun50i-a64.dtsi" =2D=20 =2D+#include =2D+ =2D &mmc0 { =2D pinctrl-names =3D "default"; =2D pinctrl-0 =3D <&mmc0_pins>; =2D@@ -52,6 +54,7 @@ =2D non-removable; =2D disable-wp; =2D bus-width =3D <4>; =2D+ cd-gpios =3D <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ =2D status =3D "okay"; =2D }; =2D=20 =2D@@ -66,6 +69,18 @@ =2D }; =2D }; =2D=20 =2D+&spi0 { =2D+ status =3D "okay"; =2D+ =2D+ flash@0 { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <1>; =2D+ compatible =3D "jedec,spi-nor"; =2D+ reg =3D <0>; =2D+ spi-max-frequency =3D <40000000>; =2D+ }; =2D+}; =2D+ =2D #include "axp803.dtsi" =2D=20 =2D ®_aldo2 { =2Ddiff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi =2Dindex 7a083637c4..f3a66f8882 100644 =2D--- a/arch/arm/dts/sun50i-a64.dtsi =2D+++ b/arch/arm/dts/sun50i-a64.dtsi =2D@@ -43,9 +43,12 @@ =2D */ =2D=20 =2D #include =2D+#include =2D #include =2D #include =2D #include =2D+#include =2D+#include =2D=20 =2D / { =2D interrupt-parent =3D <&gic>; =2D@@ -57,17 +60,21 @@ =2D #size-cells =3D <1>; =2D ranges; =2D=20 =2D-/* =2D- * The pipeline mixer0-lcd0 depends on clock CLK_MIXER0 from DE2 CCU. =2D- * However there is no support for this clock on A64 yet, so we depend =2D- * on the upstream clocks here to keep them (and thus CLK_MIXER0) up. =2D- */ =2D simplefb_lcd: framebuffer-lcd { =2D compatible =3D "allwinner,simple-framebuffer", =2D "simple-framebuffer"; =2D allwinner,pipeline =3D "mixer0-lcd0"; =2D clocks =3D <&ccu CLK_TCON0>, =2D- <&ccu CLK_DE>, <&ccu CLK_BUS_DE>; =2D+ <&display_clocks CLK_MIXER0>; =2D+ status =3D "disabled"; =2D+ }; =2D+ =2D+ simplefb_hdmi: framebuffer-hdmi { =2D+ compatible =3D "allwinner,simple-framebuffer", =2D+ "simple-framebuffer"; =2D+ allwinner,pipeline =3D "mixer1-lcd1-hdmi"; =2D+ clocks =3D <&display_clocks CLK_MIXER1>, =2D+ <&ccu CLK_TCON1>, <&ccu CLK_HDMI>; =2D status =3D "disabled"; =2D }; =2D }; =2D@@ -81,6 +88,7 @@ =2D device_type =3D "cpu"; =2D reg =3D <0>; =2D enable-method =3D "psci"; =2D+ next-level-cache =3D <&L2>; =2D }; =2D=20 =2D cpu1: cpu@1 { =2D@@ -88,6 +96,7 @@ =2D device_type =3D "cpu"; =2D reg =3D <1>; =2D enable-method =3D "psci"; =2D+ next-level-cache =3D <&L2>; =2D }; =2D=20 =2D cpu2: cpu@2 { =2D@@ -95,6 +104,7 @@ =2D device_type =3D "cpu"; =2D reg =3D <2>; =2D enable-method =3D "psci"; =2D+ next-level-cache =3D <&L2>; =2D }; =2D=20 =2D cpu3: cpu@3 { =2D@@ -102,7 +112,20 @@ =2D device_type =3D "cpu"; =2D reg =3D <3>; =2D enable-method =3D "psci"; =2D+ next-level-cache =3D <&L2>; =2D }; =2D+ =2D+ L2: l2-cache { =2D+ compatible =3D "cache"; =2D+ cache-level =3D <2>; =2D+ }; =2D+ }; =2D+ =2D+ de: display-engine { =2D+ compatible =3D "allwinner,sun50i-a64-display-engine"; =2D+ allwinner,pipelines =3D <&mixer0>, =2D+ <&mixer1>; =2D+ status =3D "disabled"; =2D }; =2D=20 =2D osc24M: osc24M_clk { =2D@@ -168,10 +191,92 @@ =2D #size-cells =3D <1>; =2D ranges; =2D=20 =2D+ de2@1000000 { =2D+ compatible =3D "allwinner,sun50i-a64-de2"; =2D+ reg =3D <0x1000000 0x400000>; =2D+ allwinner,sram =3D <&de2_sram 1>; =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <1>; =2D+ ranges =3D <0 0x1000000 0x400000>; =2D+ =2D+ display_clocks: clock@0 { =2D+ compatible =3D "allwinner,sun50i-a64-de2-clk"; =2D+ reg =3D <0x0 0x100000>; =2D+ clocks =3D <&ccu CLK_DE>, =2D+ <&ccu CLK_BUS_DE>; =2D+ clock-names =3D "mod", =2D+ "bus"; =2D+ resets =3D <&ccu RST_BUS_DE>; =2D+ #clock-cells =3D <1>; =2D+ #reset-cells =3D <1>; =2D+ }; =2D+ =2D+ mixer0: mixer@100000 { =2D+ compatible =3D "allwinner,sun50i-a64-de2-mixer-0"; =2D+ reg =3D <0x100000 0x100000>; =2D+ clocks =3D <&display_clocks CLK_BUS_MIXER0>, =2D+ <&display_clocks CLK_MIXER0>; =2D+ clock-names =3D "bus", =2D+ "mod"; =2D+ resets =3D <&display_clocks RST_MIXER0>; =2D+ =2D+ ports { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ =2D+ mixer0_out: port@1 { =2D+ reg =3D <1>; =2D+ =2D+ mixer0_out_tcon0: endpoint { =2D+ remote-endpoint =3D <&tcon0_in_mixer0>; =2D+ }; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D+ mixer1: mixer@200000 { =2D+ compatible =3D "allwinner,sun50i-a64-de2-mixer-1"; =2D+ reg =3D <0x200000 0x100000>; =2D+ clocks =3D <&display_clocks CLK_BUS_MIXER1>, =2D+ <&display_clocks CLK_MIXER1>; =2D+ clock-names =3D "bus", =2D+ "mod"; =2D+ resets =3D <&display_clocks RST_MIXER1>; =2D+ =2D+ ports { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ =2D+ mixer1_out: port@1 { =2D+ reg =3D <1>; =2D+ =2D+ mixer1_out_tcon1: endpoint { =2D+ remote-endpoint =3D <&tcon1_in_mixer1>; =2D+ }; =2D+ }; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D syscon: syscon@1c00000 { =2D- compatible =3D "allwinner,sun50i-a64-system-controller", =2D- "syscon"; =2D+ compatible =3D "allwinner,sun50i-a64-system-control"; =2D reg =3D <0x01c00000 0x1000>; =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <1>; =2D+ ranges; =2D+ =2D+ sram_c: sram@18000 { =2D+ compatible =3D "mmio-sram"; =2D+ reg =3D <0x00018000 0x28000>; =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <1>; =2D+ ranges =3D <0 0x00018000 0x28000>; =2D+ =2D+ de2_sram: sram-section@0 { =2D+ compatible =3D "allwinner,sun50i-a64-sram-c"; =2D+ reg =3D <0x0000 0x28000>; =2D+ }; =2D+ }; =2D }; =2D=20 =2D dma: dma-controller@1c02000 { =2D@@ -185,6 +290,75 @@ =2D #dma-cells =3D <1>; =2D }; =2D=20 =2D+ tcon0: lcd-controller@1c0c000 { =2D+ compatible =3D "allwinner,sun50i-a64-tcon-lcd", =2D+ "allwinner,sun8i-a83t-tcon-lcd"; =2D+ reg =3D <0x01c0c000 0x1000>; =2D+ interrupts =3D ; =2D+ clocks =3D <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; =2D+ clock-names =3D "ahb", "tcon-ch0"; =2D+ clock-output-names =3D "tcon-pixel-clock"; =2D+ resets =3D <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; =2D+ reset-names =3D "lcd", "lvds"; =2D+ =2D+ ports { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ =2D+ tcon0_in: port@0 { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ reg =3D <0>; =2D+ =2D+ tcon0_in_mixer0: endpoint@0 { =2D+ reg =3D <0>; =2D+ remote-endpoint =3D <&mixer0_out_tcon0>; =2D+ }; =2D+ }; =2D+ =2D+ tcon0_out: port@1 { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ reg =3D <1>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D+ tcon1: lcd-controller@1c0d000 { =2D+ compatible =3D "allwinner,sun50i-a64-tcon-tv", =2D+ "allwinner,sun8i-a83t-tcon-tv"; =2D+ reg =3D <0x01c0d000 0x1000>; =2D+ interrupts =3D ; =2D+ clocks =3D <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>; =2D+ clock-names =3D "ahb", "tcon-ch1"; =2D+ resets =3D <&ccu RST_BUS_TCON1>; =2D+ reset-names =3D "lcd"; =2D+ =2D+ ports { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ =2D+ tcon1_in: port@0 { =2D+ reg =3D <0>; =2D+ =2D+ tcon1_in_mixer1: endpoint { =2D+ remote-endpoint =3D <&mixer1_out_tcon1>; =2D+ }; =2D+ }; =2D+ =2D+ tcon1_out: port@1 { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ reg =3D <1>; =2D+ =2D+ tcon1_out_hdmi: endpoint@1 { =2D+ reg =3D <1>; =2D+ remote-endpoint =3D <&hdmi_in_tcon1>; =2D+ }; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D mmc0: mmc@1c0f000 { =2D compatible =3D "allwinner,sun50i-a64-mmc"; =2D reg =3D <0x01c0f000 0x1000>; =2D@@ -227,6 +401,11 @@ =2D #size-cells =3D <0>; =2D }; =2D=20 =2D+ sid: eeprom@1c14000 { =2D+ compatible =3D "allwinner,sun50i-a64-sid"; =2D+ reg =3D <0x1c14000 0x400>; =2D+ }; =2D+ =2D usb_otg: usb@1c19000 { =2D compatible =3D "allwinner,sun8i-a33-musb"; =2D reg =3D <0x01c19000 0x0400>; =2D@@ -356,7 +535,7 @@ =2D }; =2D=20 =2D mmc2_pins: mmc2-pins { =2D- pins =3D "PC1", "PC5", "PC6", "PC8", "PC9", =2D+ pins =3D "PC5", "PC6", "PC8", "PC9", =2D "PC10","PC11", "PC12", "PC13", =2D "PC14", "PC15", "PC16"; =2D function =3D "mmc2"; =2D@@ -364,6 +543,18 @@ =2D bias-pull-up; =2D }; =2D=20 =2D+ mmc2_ds_pin: mmc2-ds-pin { =2D+ pins =3D "PC1"; =2D+ function =3D "mmc2"; =2D+ drive-strength =3D <30>; =2D+ bias-pull-up; =2D+ }; =2D+ =2D+ pwm_pin: pwm_pin { =2D+ pins =3D "PD22"; =2D+ function =3D "pwm"; =2D+ }; =2D+ =2D rmii_pins: rmii_pins { =2D pins =3D "PD10", "PD11", "PD13", "PD14", "PD17", =2D "PD18", "PD19", "PD20", "PD22", "PD23"; =2D@@ -394,7 +585,7 @@ =2D function =3D "spi1"; =2D }; =2D=20 =2D- uart0_pins_a: uart0 { =2D+ uart0_pb_pins: uart0-pb-pins { =2D pins =3D "PB8", "PB9"; =2D function =3D "uart0"; =2D }; =2D@@ -474,15 +665,6 @@ =2D status =3D "disabled"; =2D }; =2D=20 =2D- pwm: pwm@1c21400 { =2D- compatible =3D "allwinner,sun50i-a64-pwm", =2D- "allwinner,sun5i-a13-pwm"; =2D- reg =3D <0x01c21400 0x8>; =2D- clocks =3D <&osc24M>; =2D- #pwm-cells =3D <3>; =2D- status =3D "disabled"; =2D- }; =2D- =2D uart0: serial@1c28000 { =2D compatible =3D "snps,dw-apb-uart"; =2D reg =3D <0x01c28000 0x400>; =2D@@ -617,8 +799,6 @@ =2D clocks =3D <&ccu CLK_BUS_EMAC>; =2D clock-names =3D "stmmaceth"; =2D status =3D "disabled"; =2D- #address-cells =3D <1>; =2D- #size-cells =3D <0>; =2D=20 =2D mdio: mdio { =2D compatible =3D "snps,dwmac-mdio"; =2D@@ -638,11 +818,69 @@ =2D #interrupt-cells =3D <3>; =2D }; =2D=20 =2D+ pwm: pwm@1c21400 { =2D+ compatible =3D "allwinner,sun50i-a64-pwm", =2D+ "allwinner,sun5i-a13-pwm"; =2D+ reg =3D <0x01c21400 0x400>; =2D+ clocks =3D <&osc24M>; =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&pwm_pin>; =2D+ #pwm-cells =3D <3>; =2D+ status =3D "disabled"; =2D+ }; =2D+ =2D+ hdmi: hdmi@1ee0000 { =2D+ compatible =3D "allwinner,sun50i-a64-dw-hdmi", =2D+ "allwinner,sun8i-a83t-dw-hdmi"; =2D+ reg =3D <0x01ee0000 0x10000>; =2D+ reg-io-width =3D <1>; =2D+ interrupts =3D ; =2D+ clocks =3D <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, =2D+ <&ccu CLK_HDMI>; =2D+ clock-names =3D "iahb", "isfr", "tmds"; =2D+ resets =3D <&ccu RST_BUS_HDMI1>; =2D+ reset-names =3D "ctrl"; =2D+ phys =3D <&hdmi_phy>; =2D+ phy-names =3D "hdmi-phy"; =2D+ status =3D "disabled"; =2D+ =2D+ ports { =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ =2D+ hdmi_in: port@0 { =2D+ reg =3D <0>; =2D+ =2D+ hdmi_in_tcon1: endpoint { =2D+ remote-endpoint =3D <&tcon1_out_hdmi>; =2D+ }; =2D+ }; =2D+ =2D+ hdmi_out: port@1 { =2D+ reg =3D <1>; =2D+ }; =2D+ }; =2D+ }; =2D+ =2D+ hdmi_phy: hdmi-phy@1ef0000 { =2D+ compatible =3D "allwinner,sun50i-a64-hdmi-phy"; =2D+ reg =3D <0x01ef0000 0x10000>; =2D+ clocks =3D <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, =2D+ <&ccu 7>; =2D+ clock-names =3D "bus", "mod", "pll-0"; =2D+ resets =3D <&ccu RST_BUS_HDMI0>; =2D+ reset-names =3D "phy"; =2D+ #phy-cells =3D <0>; =2D+ }; =2D+ =2D rtc: rtc@1f00000 { =2D compatible =3D "allwinner,sun6i-a31-rtc"; =2D reg =3D <0x01f00000 0x54>; =2D interrupts =3D , =2D ; =2D+ clock-output-names =3D "rtc-osc32k", "rtc-osc32k-out"; =2D+ clocks =3D <&osc32k>; =2D+ #clock-cells =3D <1>; =2D }; =2D=20 =2D r_intc: interrupt-controller@1f00c00 { =2D@@ -664,6 +902,29 @@ =2D #reset-cells =3D <1>; =2D }; =2D=20 =2D+ r_i2c: i2c@1f02400 { =2D+ compatible =3D "allwinner,sun50i-a64-i2c", =2D+ "allwinner,sun6i-a31-i2c"; =2D+ reg =3D <0x01f02400 0x400>; =2D+ interrupts =3D ; =2D+ clocks =3D <&r_ccu CLK_APB0_I2C>; =2D+ resets =3D <&r_ccu RST_APB0_I2C>; =2D+ status =3D "disabled"; =2D+ #address-cells =3D <1>; =2D+ #size-cells =3D <0>; =2D+ }; =2D+ =2D+ r_pwm: pwm@1f03800 { =2D+ compatible =3D "allwinner,sun50i-a64-pwm", =2D+ "allwinner,sun5i-a13-pwm"; =2D+ reg =3D <0x01f03800 0x400>; =2D+ clocks =3D <&osc24M>; =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&r_pwm_pin>; =2D+ #pwm-cells =3D <3>; =2D+ status =3D "disabled"; =2D+ }; =2D+ =2D r_pio: pinctrl@1f02c00 { =2D compatible =3D "allwinner,sun50i-a64-r-pinctrl"; =2D reg =3D <0x01f02c00 0x400>; =2D@@ -675,6 +936,16 @@ =2D interrupt-controller; =2D #interrupt-cells =3D <3>; =2D=20 =2D+ r_i2c_pl89_pins: r-i2c-pl89-pins { =2D+ pins =3D "PL8", "PL9"; =2D+ function =3D "s_i2c"; =2D+ }; =2D+ =2D+ r_pwm_pin: pwm { =2D+ pins =3D "PL10"; =2D+ function =3D "s_pwm"; =2D+ }; =2D+ =2D r_rsb_pins: rsb { =2D pins =3D "PL0", "PL1"; =2D function =3D "s_rsb"; =2D--=20 =2D2.11.0 =2D diff --git a/gnu/packages/patches/u-boot-pinebook-dts.patch b/gnu/packages/= patches/u-boot-pinebook-dts.patch deleted file mode 100644 index 48c004fdf..000000000 =2D-- a/gnu/packages/patches/u-boot-pinebook-dts.patch +++ /dev/null @@ -1,388 +0,0 @@ =2DFrom b972831c3cd24f3c9bb0995ed61db8f8239f3391 Mon Sep 17 00:00:00 2001 =2DFrom: Vasily Khoruzhick =2DDate: Mon, 5 Nov 2018 20:24:31 -0800 =2DSubject: [PATCH 10/13] sunxi: DT: add support for Pinebook =2D =2DPinebook is a laptop produced by Pine64, with USB-connected keyboard, =2DUSB-connected touchpad and an eDP LCD panel connected via a RGB-eDP =2Dbridge from Analogix. =2D =2DSigned-off-by: Vasily Khoruzhick =2DAcked-by: Maxime Ripard =2DTested-by: Maxime Ripard =2DCc: Vagrant Cascadian =2DReviewed-by: Jagan Teki =2D--- =2D arch/arm/dts/Makefile | 1 + =2D arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 ++ =2D arch/arm/dts/sun50i-a64-pinebook.dts | 294 ++++++++++++++++++++= +++++++ =2D configs/pinebook_defconfig | 22 ++ =2D 4 files changed, 332 insertions(+) =2D create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi =2D create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts =2D create mode 100644 configs/pinebook_defconfig =2D =2Ddiff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile =2Dindex 3093c1185e..eae6b9ee5d 100644 =2D--- a/arch/arm/dts/Makefile =2D+++ b/arch/arm/dts/Makefile =2D@@ -406,6 +406,7 @@ dtb-$(CONFIG_MACH_SUN50I) +=3D \ =2D sun50i-a64-orangepi-win.dtb \ =2D sun50i-a64-pine64-plus.dtb \ =2D sun50i-a64-pine64.dtb \ =2D+ sun50i-a64-pinebook.dtb \ =2D sun50i-a64-sopine-baseboard.dtb =2D dtb-$(CONFIG_MACH_SUN9I) +=3D \ =2D sun9i-a80-optimus.dtb \ =2Ddiff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi b/arch/arm/dts= /sun50i-a64-pinebook-u-boot.dtsi =2Dnew file mode 100644 =2Dindex 0000000000..a99b7171d0 =2D--- /dev/null =2D+++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi =2D@@ -0,0 +1,15 @@ =2D+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) =2D+/* =2D+ * Copyright (C) 2018 Vasily Khoruzhick =2D+ * =2D+ */ =2D+ =2D+/* The ANX6345 eDP-bridge is on r_i2c */ =2D+&r_i2c { =2D+ anx6345: edp-bridge@38 { =2D+ compatible =3D "analogix,anx6345"; =2D+ reg =3D <0x38>; =2D+ reset-gpios =3D <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ =2D+ status =3D "okay"; =2D+ }; =2D+}; =2Ddiff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-= a64-pinebook.dts =2Dnew file mode 100644 =2Dindex 0000000000..ec537c5297 =2D--- /dev/null =2D+++ b/arch/arm/dts/sun50i-a64-pinebook.dts =2D@@ -0,0 +1,294 @@ =2D+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) =2D+/* =2D+ * Copyright (C) 2017 Icenowy Zheng =2D+ * Copyright (C) 2018 Vasily Khoruzhick =2D+ * =2D+ */ =2D+ =2D+/dts-v1/; =2D+ =2D+#include "sun50i-a64.dtsi" =2D+ =2D+#include =2D+#include =2D+#include =2D+ =2D+/ { =2D+ model =3D "Pinebook"; =2D+ compatible =3D "pine64,pinebook", "allwinner,sun50i-a64"; =2D+ =2D+ aliases { =2D+ serial0 =3D &uart0; =2D+ ethernet0 =3D &rtl8723cs; =2D+ }; =2D+ =2D+ vdd_bl: regulator@0 { =2D+ compatible =3D "regulator-fixed"; =2D+ regulator-name =3D "bl-3v3"; =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ gpio =3D <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ =2D+ enable-active-high; =2D+ }; =2D+ =2D+ backlight: backlight { =2D+ compatible =3D "pwm-backlight"; =2D+ pwms =3D <&pwm 0 50000 0>; =2D+ brightness-levels =3D <0 5 10 15 20 30 40 55 70 85 100>; =2D+ default-brightness-level =3D <2>; =2D+ enable-gpios =3D <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ =2D+ power-supply =3D <&vdd_bl>; =2D+ }; =2D+ =2D+ chosen { =2D+ stdout-path =3D "serial0:115200n8"; =2D+ =2D+ framebuffer-lcd { =2D+ panel-supply =3D <®_dc1sw>; =2D+ dvdd25-supply =3D <®_dldo2>; =2D+ dvdd12-supply =3D <®_fldo1>; =2D+ }; =2D+ }; =2D+ =2D+ gpio_keys { =2D+ compatible =3D "gpio-keys"; =2D+ =2D+ lid_switch { =2D+ label =3D "Lid Switch"; =2D+ gpios =3D <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */ =2D+ linux,input-type =3D ; =2D+ linux,code =3D ; =2D+ linux,can-disable; =2D+ wakeup-source; =2D+ }; =2D+ }; =2D+ =2D+ reg_vcc3v3: vcc3v3 { =2D+ compatible =3D "regulator-fixed"; =2D+ regulator-name =3D "vcc3v3"; =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ }; =2D+ =2D+ wifi_pwrseq: wifi_pwrseq { =2D+ compatible =3D "mmc-pwrseq-simple"; =2D+ reset-gpios =3D <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ =2D+ }; =2D+}; =2D+ =2D+&ehci0 { =2D+ phys =3D <&usbphy 0>; =2D+ phy-names =3D "usb"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ehci1 { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&mmc0 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&mmc0_pins>; =2D+ vmmc-supply =3D <®_dcdc1>; =2D+ cd-gpios =3D <&pio 5 6 GPIO_ACTIVE_LOW>; =2D+ disable-wp; =2D+ bus-width =3D <4>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&mmc1 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&mmc1_pins>; =2D+ vmmc-supply =3D <®_dldo4>; =2D+ vqmmc-supply =3D <®_eldo1>; =2D+ mmc-pwrseq =3D <&wifi_pwrseq>; =2D+ bus-width =3D <4>; =2D+ non-removable; =2D+ status =3D "okay"; =2D+ =2D+ rtl8723cs: wifi@1 { =2D+ reg =3D <1>; =2D+ }; =2D+}; =2D+ =2D+&mmc2 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&mmc2_pins>, <&mmc2_ds_pin>; =2D+ vmmc-supply =3D <®_dcdc1>; =2D+ vqmmc-supply =3D <®_eldo1>; =2D+ bus-width =3D <8>; =2D+ non-removable; =2D+ cap-mmc-hw-reset; =2D+ mmc-hs200-1_8v; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ohci0 { =2D+ phys =3D <&usbphy 0>; =2D+ phy-names =3D "usb"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&ohci1 { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&pwm { =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&r_rsb { =2D+ status =3D "okay"; =2D+ =2D+ axp803: pmic@3a3 { =2D+ compatible =3D "x-powers,axp803"; =2D+ reg =3D <0x3a3>; =2D+ interrupt-parent =3D <&r_intc>; =2D+ interrupts =3D <0 IRQ_TYPE_LEVEL_LOW>; =2D+ }; =2D+}; =2D+ =2D+/* The ANX6345 eDP-bridge is on r_i2c */ =2D+&r_i2c { =2D+ clock-frequency =3D <100000>; =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&r_i2c_pl89_pins>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+#include "axp803.dtsi" =2D+ =2D+®_aldo1 { =2D+ regulator-min-microvolt =3D <2800000>; =2D+ regulator-max-microvolt =3D <2800000>; =2D+ regulator-name =3D "vcc-csi"; =2D+}; =2D+ =2D+®_aldo2 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1800000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-pl"; =2D+}; =2D+ =2D+®_aldo3 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <2700000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-pll-avcc"; =2D+}; =2D+ =2D+®_dc1sw { =2D+ regulator-name =3D "vcc-lcd"; =2D+}; =2D+ =2D+®_dcdc1 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-3v3"; =2D+}; =2D+ =2D+®_dcdc2 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1000000>; =2D+ regulator-max-microvolt =3D <1300000>; =2D+ regulator-name =3D "vdd-cpux"; =2D+}; =2D+ =2D+/* DCDC3 is polyphased with DCDC2 */ =2D+ =2D+®_dcdc5 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1200000>; =2D+ regulator-max-microvolt =3D <1200000>; =2D+ regulator-name =3D "vcc-dram"; =2D+}; =2D+ =2D+®_dcdc6 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1100000>; =2D+ regulator-max-microvolt =3D <1100000>; =2D+ regulator-name =3D "vdd-sys"; =2D+}; =2D+ =2D+®_dldo1 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-hdmi"; =2D+}; =2D+ =2D+®_dldo2 { =2D+ regulator-min-microvolt =3D <2500000>; =2D+ regulator-max-microvolt =3D <2500000>; =2D+ regulator-name =3D "vcc-edp"; =2D+}; =2D+ =2D+®_dldo3 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "avdd-csi"; =2D+}; =2D+ =2D+®_dldo4 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-wifi"; =2D+}; =2D+ =2D+®_eldo1 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1800000>; =2D+ regulator-max-microvolt =3D <1800000>; =2D+ regulator-name =3D "cpvdd"; =2D+}; =2D+ =2D+®_eldo3 { =2D+ regulator-min-microvolt =3D <1800000>; =2D+ regulator-max-microvolt =3D <1800000>; =2D+ regulator-name =3D "vdd-1v8-csi"; =2D+}; =2D+ =2D+®_fldo1 { =2D+ regulator-min-microvolt =3D <1200000>; =2D+ regulator-max-microvolt =3D <1200000>; =2D+ regulator-name =3D "vcc-1v2-hsic"; =2D+}; =2D+ =2D+®_fldo2 { =2D+ regulator-always-on; =2D+ regulator-min-microvolt =3D <1100000>; =2D+ regulator-max-microvolt =3D <1100000>; =2D+ regulator-name =3D "vdd-cpus"; =2D+}; =2D+ =2D+®_ldo_io0 { =2D+ regulator-min-microvolt =3D <3300000>; =2D+ regulator-max-microvolt =3D <3300000>; =2D+ regulator-name =3D "vcc-usb"; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+®_rtc_ldo { =2D+ regulator-name =3D "vcc-rtc"; =2D+}; =2D+ =2D+&simplefb_hdmi { =2D+ vcc-hdmi-supply =3D <®_dldo1>; =2D+}; =2D+ =2D+&uart0 { =2D+ pinctrl-names =3D "default"; =2D+ pinctrl-0 =3D <&uart0_pb_pins>; =2D+ status =3D "okay"; =2D+}; =2D+ =2D+&usb_otg { =2D+ dr_mode =3D "host"; =2D+}; =2D+ =2D+&usbphy { =2D+ usb0_vbus-supply =3D <®_ldo_io0>; =2D+ usb1_vbus-supply =3D <®_ldo_io0>; =2D+ status =3D "okay"; =2D+}; =2Ddiff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig =2Dnew file mode 100644 =2Dindex 0000000000..5294dbd2eb =2D--- /dev/null =2D+++ b/configs/pinebook_defconfig =2D@@ -0,0 +1,22 @@ =2D+CONFIG_ARM=3Dy =2D+CONFIG_ARCH_SUNXI=3Dy =2D+CONFIG_SPL=3Dy =2D+CONFIG_MACH_SUN50I=3Dy =2D+CONFIG_SUNXI_DRAM_LPDDR3_STOCK=3Dy =2D+CONFIG_DRAM_CLK=3D552 =2D+CONFIG_DRAM_ZQ=3D3881949 =2D+CONFIG_MMC_SUNXI_SLOT_EXTRA=3D2 =2D+CONFIG_R_I2C_ENABLE=3Dy =2D+# CONFIG_CMD_FLASH is not set =2D+# CONFIG_SPL_DOS_PARTITION is not set =2D+# CONFIG_SPL_EFI_PARTITION is not set =2D+CONFIG_DEFAULT_DEVICE_TREE=3D"sun50i-a64-pinebook" =2D+CONFIG_DM_REGULATOR=3Dy =2D+CONFIG_DM_REGULATOR_FIXED=3Dy =2D+CONFIG_DM_PWM=3Dy =2D+CONFIG_PWM_SUNXI=3Dy =2D+CONFIG_USB_EHCI_HCD=3Dy =2D+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=3Dy =2D+# CONFIG_USB_GADGET is not set =2D+CONFIG_VIDEO_BRIDGE=3Dy =2D+CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=3Dy =2D--=20 =2D2.11.0 =2D diff --git a/gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch b/g= nu/packages/patches/u-boot-pinebook-mmc-calibration.patch deleted file mode 100644 index 118bdf8e0..000000000 =2D-- a/gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch +++ /dev/null @@ -1,98 +0,0 @@ =2DFrom 20940ef2a397446a209350900d3bd618c3fd5b94 Mon Sep 17 00:00:00 2001 =2DFrom: Vasily Khoruzhick =2DDate: Mon, 5 Nov 2018 20:24:28 -0800 =2DSubject: [PATCH 07/13] mmc: sunxi: add support for automatic delay calib= ration =2D =2DA64 and H6 support automatic delay calibration and Linux driver uses it =2Dinstead of hardcoded delays. Add support for it to u-boot driver. =2D =2DFixes eMMC instability on Pinebook =2D =2DSigned-off-by: Vasily Khoruzhick =2DAcked-by: Maxime Ripard =2DTested-by: Maxime Ripard =2DReviewed-by: Andre Przywara =2DCc: Vagrant Cascadian =2DReviewed-by: Jagan Teki =2D--- =2D arch/arm/include/asm/arch-sunxi/mmc.h | 6 +++++- =2D drivers/mmc/sunxi_mmc.c | 21 ++++++++++++++++++++- =2D 2 files changed, 25 insertions(+), 2 deletions(-) =2D =2Ddiff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/as= m/arch-sunxi/mmc.h =2Dindex d98c53faaa..f2deafddd2 100644 =2D--- a/arch/arm/include/asm/arch-sunxi/mmc.h =2D+++ b/arch/arm/include/asm/arch-sunxi/mmc.h =2D@@ -46,7 +46,9 @@ struct sunxi_mmc { =2D u32 cbda; /* 0x94 */ =2D u32 res2[26]; =2D #if defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6) =2D- u32 res3[64]; =2D+ u32 res3[17]; =2D+ u32 samp_dl; =2D+ u32 res4[46]; =2D #endif =2D u32 fifo; /* 0x100 / 0x200 FIFO access address */ =2D }; =2D@@ -130,5 +132,7 @@ struct sunxi_mmc { =2D #define SUNXI_MMC_COMMON_CLK_GATE (1 << 16) =2D #define SUNXI_MMC_COMMON_RESET (1 << 18) =2D=20 =2D+#define SUNXI_MMC_CAL_DL_SW_EN (0x1 << 7) =2D+ =2D struct mmc *sunxi_mmc_init(int sdc_no); =2D #endif /* _SUNXI_MMC_H */ =2Ddiff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c =2Dindex 39f15eb423..147eb9b4d5 100644 =2D--- a/drivers/mmc/sunxi_mmc.c =2D+++ b/drivers/mmc/sunxi_mmc.c =2D@@ -99,11 +99,16 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *pr= iv, unsigned int hz) =2D { =2D unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly; =2D bool new_mode =3D false; =2D+ bool calibrate =3D false; =2D u32 val =3D 0; =2D=20 =2D if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no =3D=3D = 2)) =2D new_mode =3D true; =2D=20 =2D+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6) =2D+ calibrate =3D true; =2D+#endif =2D+ =2D /* =2D * The MMC clock has an extra /2 post-divider when operating in the new =2D * mode. =2D@@ -174,7 +179,11 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *p= riv, unsigned int hz) =2D val =3D CCM_MMC_CTRL_MODE_SEL_NEW; =2D setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW); =2D #endif =2D- } else { =2D+ } else if (!calibrate) { =2D+ /* =2D+ * Use hardcoded delay values if controller doesn't support =2D+ * calibration =2D+ */ =2D val =3D CCM_MMC_CTRL_OCLK_DLY(oclk_dly) | =2D CCM_MMC_CTRL_SCLK_DLY(sclk_dly); =2D } =2D@@ -228,6 +237,16 @@ static int mmc_config_clock(struct sunxi_mmc_priv *= priv, struct mmc *mmc) =2D rval &=3D ~SUNXI_MMC_CLK_DIVIDER_MASK; =2D writel(rval, &priv->reg->clkcr); =2D=20 =2D+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6) =2D+ /* A64 supports calibration of delays on MMC controller and we =2D+ * have to set delay of zero before starting calibration. =2D+ * Allwinner BSP driver sets a delay only in the case of =2D+ * using HS400 which is not supported by mainline U-Boot or =2D+ * Linux at the moment =2D+ */ =2D+ writel(SUNXI_MMC_CAL_DL_SW_EN, &priv->reg->samp_dl); =2D+#endif =2D+ =2D /* Re-enable Clock */ =2D rval |=3D SUNXI_MMC_CLK_ENABLE; =2D writel(rval, &priv->reg->clkcr); =2D--=20 =2D2.11.0 =2D diff --git a/gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch b/= gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch deleted file mode 100644 index 824a16b9d..000000000 =2D-- a/gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch +++ /dev/null @@ -1,70 +0,0 @@ =2DFrom 31a4ac4d79d75baeede3edfa95515fd4169ef502 Mon Sep 17 00:00:00 2001 =2DFrom: Vasily Khoruzhick =2DDate: Mon, 5 Nov 2018 20:24:30 -0800 =2DSubject: [PATCH 09/13] sun50i: A64: add support for R_I2C controller =2D =2DAllwinner A64 has a I2C controller, which is in the R_ MMIO zone and has =2Dtwo groups of pinmuxes on PL bank, so it's called R_I2C. =2D =2DAdd support for this I2C controller and the pinmux which doesn't conflict =2Dwith RSB. =2D =2DSigned-off-by: Vasily Khoruzhick =2DAcked-by: Maxime Ripard =2DTested-by: Maxime Ripard =2DCc: Vagrant Cascadian =2DAcked-by: Jagan Teki =2D--- =2D arch/arm/include/asm/arch-sunxi/gpio.h | 1 + =2D arch/arm/mach-sunxi/Kconfig | 1 + =2D board/sunxi/board.c | 6 ++++++ =2D 3 files changed, 8 insertions(+) =2D =2Ddiff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/a= sm/arch-sunxi/gpio.h =2Dindex 6a5eafc3d3..2daf23f6f5 100644 =2D--- a/arch/arm/include/asm/arch-sunxi/gpio.h =2D+++ b/arch/arm/include/asm/arch-sunxi/gpio.h =2D@@ -211,6 +211,7 @@ enum sunxi_gpio_number { =2D #define SUN8I_H3_GPL_R_TWI 2 =2D #define SUN8I_A23_GPL_R_TWI 3 =2D #define SUN8I_GPL_R_UART 2 =2D+#define SUN50I_GPL_R_TWI 2 =2D=20 =2D #define SUN9I_GPN_R_RSB 3 =2D=20 =2Ddiff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig =2Dindex 6277abc3cc..560dc9b25d 100644 =2D--- a/arch/arm/mach-sunxi/Kconfig =2D+++ b/arch/arm/mach-sunxi/Kconfig =2D@@ -278,6 +278,7 @@ config MACH_SUN50I =2D select ARM64 =2D select DM_I2C =2D select PHY_SUN4I_USB =2D+ select SUN6I_PRCM =2D select SUNXI_DE2 =2D select SUNXI_GEN_SUN6I =2D select SUPPORT_SPL =2Ddiff --git a/board/sunxi/board.c b/board/sunxi/board.c =2Dindex b196d48674..64ccbc7245 100644 =2D--- a/board/sunxi/board.c =2D+++ b/board/sunxi/board.c =2D@@ -168,10 +168,16 @@ void i2c_init_board(void) =2D #endif =2D=20 =2D #ifdef CONFIG_R_I2C_ENABLE =2D+#ifdef CONFIG_MACH_SUN50I =2D+ clock_twi_onoff(5, 1); =2D+ sunxi_gpio_set_cfgpin(SUNXI_GPL(8), SUN50I_GPL_R_TWI); =2D+ sunxi_gpio_set_cfgpin(SUNXI_GPL(9), SUN50I_GPL_R_TWI); =2D+#else =2D clock_twi_onoff(5, 1); =2D sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI); =2D sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI); =2D #endif =2D+#endif =2D } =2D=20 =2D #if defined(CONFIG_ENV_IS_IN_MMC) && defined(CONFIG_ENV_IS_IN_FAT) =2D--=20 =2D2.11.0 =2D diff --git a/gnu/packages/patches/u-boot-pinebook-syscon-node.patch b/gnu/p= ackages/patches/u-boot-pinebook-syscon-node.patch deleted file mode 100644 index 9289645be..000000000 =2D-- a/gnu/packages/patches/u-boot-pinebook-syscon-node.patch +++ /dev/null @@ -1,38 +0,0 @@ =2DFrom ababb5920e8992c9bb7956df3cc85dc68d27dfe8 Mon Sep 17 00:00:00 2001 =2DFrom: Andre Przywara =2DDate: Mon, 29 Oct 2018 00:56:48 +0000 =2DSubject: [PATCH 04/13] sunxi: A64: Re-add syscon to DT node =2D =2DThe sun50i-a64.dtsi changes introduced in Linux v4.19-rc1 changed the =2Dcompatible name for the syscon controller, dropping the generic "syscon" =2Dfallback. Using this new DT node will make the Ethernet driver in every =2Dolder kernel (or non-Linux kernels) fail to initialise the MAC device. =2D =2DTo allow booting distribution kernels (from installer images via UEFI, =2Dfor instance), re-add the syscon compatible string as a fallback. This =2Dworks with both older and newer kernels. =2D =2DSigned-off-by: Andre Przywara =2DAcked-by: Maxime Ripard =2DReviewed-by: Jagan Teki =2D--- =2D arch/arm/dts/sun50i-a64.dtsi | 3 ++- =2D 1 file changed, 2 insertions(+), 1 deletion(-) =2D =2Ddiff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi =2Dindex f3a66f8882..ff41abc96a 100644 =2D--- a/arch/arm/dts/sun50i-a64.dtsi =2D+++ b/arch/arm/dts/sun50i-a64.dtsi =2D@@ -259,7 +259,8 @@ =2D }; =2D=20 =2D syscon: syscon@1c00000 { =2D- compatible =3D "allwinner,sun50i-a64-system-control"; =2D+ compatible =3D "allwinner,sun50i-a64-system-control", =2D+ "syscon"; =2D reg =3D <0x01c00000 0x1000>; =2D #address-cells =3D <1>; =2D #size-cells =3D <1>; =2D--=20 =2D2.11.0 =2D diff --git a/gnu/packages/patches/u-boot-pinebook-video-bridge.patch b/gnu/= packages/patches/u-boot-pinebook-video-bridge.patch deleted file mode 100644 index 8c6ca8a99..000000000 =2D-- a/gnu/packages/patches/u-boot-pinebook-video-bridge.patch +++ /dev/null @@ -1,50 +0,0 @@ =2DFrom 8336a43792a103c13d939b3925cb75322911f7fb Mon Sep 17 00:00:00 2001 =2DFrom: Vasily Khoruzhick =2DDate: Mon, 5 Nov 2018 20:24:29 -0800 =2DSubject: [PATCH 08/13] dm: video: bridge: don't fail to activate bridge = if =2D reset or sleep GPIO is missing =2D =2DBoth GPIOs are optional, so we shouldn't fail if any is missing. =2DWithout this fix reset is not deasserted if sleep GPIO is missing. =2D =2DSigned-off-by: Vasily Khoruzhick =2DAcked-by: Maxime Ripard =2DTested-by: Maxime Ripard =2DReviewed-by: Andre Przywara =2DCc: Vagrant Cascadian =2D--- =2D drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++----- =2D 1 file changed, 11 insertions(+), 5 deletions(-) =2D =2Ddiff --git a/drivers/video/bridge/video-bridge-uclass.c b/drivers/video/= bridge/video-bridge-uclass.c =2Dindex cd4959cc71..5fecb4cfd5 100644 =2D--- a/drivers/video/bridge/video-bridge-uclass.c =2D+++ b/drivers/video/bridge/video-bridge-uclass.c =2D@@ -106,13 +106,19 @@ static int video_bridge_pre_probe(struct udevice *= dev) =2D int video_bridge_set_active(struct udevice *dev, bool active) =2D { =2D struct video_bridge_priv *uc_priv =3D dev_get_uclass_priv(dev); =2D- int ret; =2D+ int ret =3D 0; =2D=20 =2D debug("%s: %d\n", __func__, active); =2D- ret =3D dm_gpio_set_value(&uc_priv->sleep, !active); =2D- if (ret) =2D- return ret; =2D- if (active) { =2D+ if (uc_priv->sleep.dev) { =2D+ ret =3D dm_gpio_set_value(&uc_priv->sleep, !active); =2D+ if (ret) =2D+ return ret; =2D+ } =2D+ =2D+ if (!active) =2D+ return 0; =2D+ =2D+ if (uc_priv->reset.dev) { =2D ret =3D dm_gpio_set_value(&uc_priv->reset, true); =2D if (ret) =2D return ret; =2D--=20 =2D2.11.0 =2D =2D-=20 2.20.1 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXD+8kgAKCRDcUY/If5cW qnjnAPsE9PTrH+uwQxFeB4tPRKbHelhL1gQDXkK+ly8/I46n1gD9H0hcvQ5BLOi/ yO1tFEQKhElLmoDo4W31H9MsMfPNgA8= =p7hM -----END PGP SIGNATURE----- --=-=-=--