The Bananapi BPi-R64 got a SATA interface which cannot be used at the same time as the second mPCIe slot. The decission is made by hogging GPIO 90. Embed two addtional DT overlay blobs into the image to allow bootloader selection of either SATA or PCIE1 feature. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
80 lines
1.5 KiB
Diff
80 lines
1.5 KiB
Diff
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
|
@@ -279,14 +279,14 @@
|
|
&pcie1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pcie1_pins>;
|
|
- status = "okay";
|
|
+ status = "disabled";
|
|
};
|
|
|
|
&pio {
|
|
/* Attention: GPIO 90 is used to switch between PCIe@1,0 and
|
|
* SATA functions. i.e. output-high: PCIe, output-low: SATA
|
|
*/
|
|
- asm_sel {
|
|
+ asmsel: asm_sel {
|
|
gpio-hog;
|
|
gpios = <90 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64-sata.dts
|
|
@@ -0,0 +1,31 @@
|
|
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
|
+
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
+
|
|
+/dts-v1/;
|
|
+/plugin/;
|
|
+
|
|
+/ {
|
|
+ compatible = "bananapi,bpi-r64", "mediatek,mt7622";
|
|
+
|
|
+ fragment@0 {
|
|
+ target = <&asmsel>;
|
|
+ __overlay__ {
|
|
+ gpios = <90 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ fragment@1 {
|
|
+ target = <&sata>;
|
|
+ __overlay__ {
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ fragment@2 {
|
|
+ target = <&sata_phy>;
|
|
+ __overlay__ {
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+};
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64-pcie1.dts
|
|
@@ -0,0 +1,24 @@
|
|
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
|
+
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
+
|
|
+/dts-v1/;
|
|
+/plugin/;
|
|
+
|
|
+/ {
|
|
+ compatible = "bananapi,bpi-r64", "mediatek,mt7622";
|
|
+
|
|
+ fragment@0 {
|
|
+ target = <&asmsel>;
|
|
+ __overlay__ {
|
|
+ gpios = <90 GPIO_ACTIVE_HIGH>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ fragment@1 {
|
|
+ target = <&pcie1>;
|
|
+ __overlay__ {
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+};
|