From 8eef39bcb39888cb2d8bd769e772fd41008bc890 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Wed, 15 Jan 2020 20:56:02 +0100 Subject: [PATCH] Allwinner: H6: Proper eMMC support Signed-off-by: Jernej Skrabec --- .../devices/H6/patches/linux/07-opi3.patch | 23 +++--- .../H6/patches/linux/13-Tanix-TX6.patch | 75 +++++++++++++++---- .../H6/patches/linux/14-eMMC-workaround.patch | 38 ---------- 3 files changed, 73 insertions(+), 63 deletions(-) delete mode 100644 projects/Allwinner/devices/H6/patches/linux/14-eMMC-workaround.patch diff --git a/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch b/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch index c87d148344..86438cb4b5 100644 --- a/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch +++ b/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch @@ -1,24 +1,27 @@ -From ce48f9b105340aa4b66f30266c7d9cd4a71a7ca3 Mon Sep 17 00:00:00 2001 +From beada897870d77ccbd4a14981d7f9a7f94d44ef4 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec -Date: Mon, 24 Jun 2019 12:23:04 +0200 -Subject: [PATCH] OPi3 GPU and eMMC nodes +Date: Wed, 15 Jan 2020 18:51:54 +0100 +Subject: [PATCH] arm64: dts: allwinner: h6: orangepi-3: Add eMMC node + +OrangePi 3 can optionally have 8 GiB eMMC (soldered on board). Add a +node for it. Signed-off-by: Jernej Skrabec --- - .../boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 12 ++++++++++++ - 1 file changed, 12 insertions(+) + arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index 17d496990108..93bdd33694fb 100644 +index c311eee52a35..eda591be661e 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -@@ -65,6 +69,14 @@ - status = "okay"; +@@ -144,6 +144,14 @@ brcm: sdio-wifi@1 { + }; }; +&mmc2 { + vmmc-supply = <®_cldo1>; -+ non-removable; ++ vqmmc-supply = <®_bldo2>; + cap-mmc-hw-reset; + bus-width = <8>; + status = "okay"; @@ -28,7 +31,7 @@ index 17d496990108..93bdd33694fb 100644 status = "okay"; }; -- -2.22.0 +2.24.1 From 0b2bbc6708ef986e2f8d281f65e0c1ca3ff14562 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman diff --git a/projects/Allwinner/devices/H6/patches/linux/13-Tanix-TX6.patch b/projects/Allwinner/devices/H6/patches/linux/13-Tanix-TX6.patch index da724d2bf7..a5ae658f3d 100644 --- a/projects/Allwinner/devices/H6/patches/linux/13-Tanix-TX6.patch +++ b/projects/Allwinner/devices/H6/patches/linux/13-Tanix-TX6.patch @@ -1,3 +1,63 @@ +From e6cdedb22a9b012366d07276dace02c2c98fffc4 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Wed, 15 Jan 2020 18:39:17 +0100 +Subject: [PATCH 1/3] arm64: dts: allwinner: h6: tanix-tx6: enable emmc + +Tanix TX6 has 32 GiB eMMC. Add a node for it. + +Signed-off-by: Jernej Skrabec +--- + .../dts/allwinner/sun50i-h6-tanix-tx6.dts | 20 +++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts +index 83e6cb0e59ce..8cbf4e4a761e 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts +@@ -31,6 +31,13 @@ hdmi_con_in: endpoint { + }; + }; + ++ reg_vcc1v8: vcc1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc1v8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ }; ++ + reg_vcc3v3: vcc3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3"; +@@ -78,6 +85,15 @@ &mmc0 { + status = "okay"; + }; + ++&mmc2 { ++ vmmc-supply = <®_vcc3v3>; ++ vqmmc-supply = <®_vcc1v8>; ++ non-removable; ++ cap-mmc-hw-reset; ++ bus-width = <8>; ++ status = "okay"; ++}; ++ + &ohci0 { + status = "okay"; + }; +@@ -86,6 +102,10 @@ &ohci3 { + status = "okay"; + }; + ++&pio { ++ vcc-pc-supply = <®_vcc1v8>; ++}; ++ + &r_ir { + linux,rc-map-name = "rc-tanix-tx5max"; + status = "okay"; +-- +2.24.1 + From cbf6129cdb69f006f66e22b854d5d544c940fd49 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 24 Aug 2019 01:03:05 +0200 @@ -66,21 +126,6 @@ index 7e7cb10e3d96..3de430b631f2 100644 &mmc0 { pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins>; -@@ -72,6 +100,14 @@ - status = "okay"; - }; - -+&mmc2 { -+ vmmc-supply = <®_vcc3v3>; -+ non-removable; -+ cap-mmc-hw-reset; -+ bus-width = <8>; -+ status = "okay"; -+}; -+ - &ohci0 { - status = "okay"; - }; @@ -80,6 +116,10 @@ status = "okay"; }; diff --git a/projects/Allwinner/devices/H6/patches/linux/14-eMMC-workaround.patch b/projects/Allwinner/devices/H6/patches/linux/14-eMMC-workaround.patch deleted file mode 100644 index 55b2d4c004..0000000000 --- a/projects/Allwinner/devices/H6/patches/linux/14-eMMC-workaround.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4d38ab8df68f04cc87eeba065c3d35df71c280e4 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sat, 24 Aug 2019 01:36:44 +0200 -Subject: [PATCH] eMMC workaround - -Signed-off-by: Jernej Skrabec ---- - drivers/mmc/host/sunxi-mmc.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c -index d577a6b0ceae..067d217bde42 100644 ---- a/drivers/mmc/host/sunxi-mmc.c -+++ b/drivers/mmc/host/sunxi-mmc.c -@@ -1394,15 +1394,17 @@ static int sunxi_mmc_probe(struct platform_device *pdev) - MMC_CAP_ERASE | MMC_CAP_SDIO_IRQ; - - /* -- * Some H5 devices do not have signal traces precise enough to -- * use HS DDR mode for their eMMC chips. -+ * Some H5 and H6 devices do not have signal traces precise -+ * enough to use HS DDR mode for their eMMC chips. - * - * We still enable HS DDR modes for all the other controller - * variants that support them. - */ - if ((host->cfg->clk_delays || host->use_new_timings) && - !of_device_is_compatible(pdev->dev.of_node, -- "allwinner,sun50i-h5-emmc")) -+ "allwinner,sun50i-h5-emmc") && -+ !of_device_is_compatible(pdev->dev.of_node, -+ "allwinner,sun50i-h6-emmc")) - mmc->caps |= MMC_CAP_1_8V_DDR | MMC_CAP_3_3V_DDR; - - ret = mmc_of_parse(mmc); --- -2.23.0 -