[v2,5/5] arm64: dts: mt7986: add overlay for SATA power socket on BPI-R3
Commit Message
From: Frank Wunderlich <frank-w@public-files.de>
Bananapi R3 has a Power socket entended for using external SATA drives.
This Socket is off by default but can be switched with gpio 8.
Add an overlay to activate it.
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v2:
- rebase on the patch "add dtbs with applied overlays for bpi-r3"
- add sata-overlay to the full dtbs
---
arch/arm64/boot/dts/mediatek/Makefile | 13 +++++--
.../mt7986a-bananapi-bpi-r3-sata.dtso | 39 +++++++++++++++++++
2 files changed, 48 insertions(+), 4 deletions(-)
create mode 100644 arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
Comments
Il 25/10/23 19:08, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w@public-files.de>
>
> Bananapi R3 has a Power socket entended for using external SATA drives.
> This Socket is off by default but can be switched with gpio 8.
>
> Add an overlay to activate it.
>
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---
> v2:
> - rebase on the patch "add dtbs with applied overlays for bpi-r3"
> - add sata-overlay to the full dtbs
> ---
> arch/arm64/boot/dts/mediatek/Makefile | 13 +++++--
> .../mt7986a-bananapi-bpi-r3-sata.dtso | 39 +++++++++++++++++++
> 2 files changed, 48 insertions(+), 4 deletions(-)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
>
> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
> index 24eeba0703ce..c3b236a47513 100644
> --- a/arch/arm64/boot/dts/mediatek/Makefile
> +++ b/arch/arm64/boot/dts/mediatek/Makefile
> @@ -13,26 +13,31 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo
> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sata.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
The devicetree overlays make no sense without a base devicetree, right? :-)
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo <-- makes no sense!
Check how it's done in freescale (nxp) and renesas... and there's also one instance
of overlays in qualcomm.
In short:
- Remove all of the dtb-$(CONFIG_ARCH_MEDIATEK) += blah.dtbo
- xxxx-dtbs:= blah.dtb blah-overlay.dtbo, dtb-$(CONFIG_ARCH_MEDIATEK) += xxxx.dtb
is correct.
> mt7986a-bananapi-bpi-r3-emmc-nand-dtbs := \
> mt7986a-bananapi-bpi-r3.dtb \
> mt7986a-bananapi-bpi-r3-emmc.dtbo \
> - mt7986a-bananapi-bpi-r3-nand.dtbo
> + mt7986a-bananapi-bpi-r3-nand.dtbo \
> + mt7986a-bananapi-bpi-r3-sata.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc-nand.dtb
> mt7986a-bananapi-bpi-r3-emmc-nor-dtbs := \
> mt7986a-bananapi-bpi-r3.dtb \
> mt7986a-bananapi-bpi-r3-emmc.dtbo \
> - mt7986a-bananapi-bpi-r3-nor.dtbo
> + mt7986a-bananapi-bpi-r3-nor.dtbo \
> + mt7986a-bananapi-bpi-r3-sata.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc-nor.dtb
> mt7986a-bananapi-bpi-r3-sd-nand-dtbs := \
> mt7986a-bananapi-bpi-r3.dtb \
> mt7986a-bananapi-bpi-r3-sd.dtbo \
> - mt7986a-bananapi-bpi-r3-nand.dtbo
> + mt7986a-bananapi-bpi-r3-nand.dtbo \
> + mt7986a-bananapi-bpi-r3-sata.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd-nand.dtb
> mt7986a-bananapi-bpi-r3-sd-nor-dtbs := \
> mt7986a-bananapi-bpi-r3.dtb \
> mt7986a-bananapi-bpi-r3-sd.dtbo \
> - mt7986a-bananapi-bpi-r3-nor.dtbo
> + mt7986a-bananapi-bpi-r3-nor.dtbo \
> + mt7986a-bananapi-bpi-r3-sata.dtbo
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd-nor.dtb
>
> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
> diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
> new file mode 100644
> index 000000000000..6ab06813412a
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
> @@ -0,0 +1,39 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (C) 2021 MediaTek Inc.
> + * Author: Frank Wunderlich <frank-w@public-files.de>
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +/ {
> + compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
> +
> + fragment@0 {
> + target-path = "/";
> + __overlay__ {
This could be easier, I think.
&{/} {
reg_sata12v: regulator-sata12v {
....
};
something_else: something-else { ... };
};
Regards,
Angelo
> + reg_sata12v: regulator-sata12v {
> + compatible = "regulator-fixed";
> + regulator-name = "sata12v";
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> + gpio = <&pio 8 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + reg_sata5v: regulator-sata5v {
> + compatible = "regulator-fixed";
> + regulator-name = "sata5v";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + vin-supply = <®_sata12v>;
> + };
> + };
> + };
> +};
> +
Hi Angelo
Bpi-r3 can boot with only 1 mmc device and 1 spi-device. Some users may not use the sata overlay. Using overlays in fit have the advantage to probe hardware in uboot and load the required overlays instead of loading a full dtb.
Am 26. Oktober 2023 10:03:08 MESZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>:
>Il 25/10/23 19:08, Frank Wunderlich ha scritto:
>> From: Frank Wunderlich <frank-w@public-files.de>
>>
>> Bananapi R3 has a Power socket entended for using external SATA drives.
>> This Socket is off by default but can be switched with gpio 8.
>>
>> Add an overlay to activate it.
>>
>> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
>> ---
>> v2:
>> - rebase on the patch "add dtbs with applied overlays for bpi-r3"
>> - add sata-overlay to the full dtbs
>> ---
>> arch/arm64/boot/dts/mediatek/Makefile | 13 +++++--
>> .../mt7986a-bananapi-bpi-r3-sata.dtso | 39 +++++++++++++++++++
>> 2 files changed, 48 insertions(+), 4 deletions(-)
>> create mode 100644 arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
>>
>> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
>> index 24eeba0703ce..c3b236a47513 100644
>> --- a/arch/arm64/boot/dts/mediatek/Makefile
>> +++ b/arch/arm64/boot/dts/mediatek/Makefile
>> @@ -13,26 +13,31 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo
>> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sata.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
>
>The devicetree overlays make no sense without a base devicetree, right? :-)
The base-dtb is needed,but i prefer have 1 base-dt and overlays (in 1 fit image dynamically load in uboot) instead of 4+ full dtbs,but some people prefer using the full dtbs.
>dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo <-- makes no sense!
Depends on users preference :) full dtb is easier to load,but less flexible.
>Check how it's done in freescale (nxp) and renesas... and there's also one instance
>of overlays in qualcomm.
>In short:
> - Remove all of the dtb-$(CONFIG_ARCH_MEDIATEK) += blah.dtbo
> - xxxx-dtbs:= blah.dtb blah-overlay.dtbo, dtb-$(CONFIG_ARCH_MEDIATEK) += xxxx.dtb
> is correct.
That will break my current way :( openwrt uses same.
>> mt7986a-bananapi-bpi-r3-emmc-nand-dtbs := \
>> mt7986a-bananapi-bpi-r3.dtb \
>> mt7986a-bananapi-bpi-r3-emmc.dtbo \
>> - mt7986a-bananapi-bpi-r3-nand.dtbo
>> + mt7986a-bananapi-bpi-r3-nand.dtbo \
>> + mt7986a-bananapi-bpi-r3-sata.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc-nand.dtb
>> mt7986a-bananapi-bpi-r3-emmc-nor-dtbs := \
>> mt7986a-bananapi-bpi-r3.dtb \
>> mt7986a-bananapi-bpi-r3-emmc.dtbo \
>> - mt7986a-bananapi-bpi-r3-nor.dtbo
>> + mt7986a-bananapi-bpi-r3-nor.dtbo \
>> + mt7986a-bananapi-bpi-r3-sata.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc-nor.dtb
>> mt7986a-bananapi-bpi-r3-sd-nand-dtbs := \
>> mt7986a-bananapi-bpi-r3.dtb \
>> mt7986a-bananapi-bpi-r3-sd.dtbo \
>> - mt7986a-bananapi-bpi-r3-nand.dtbo
>> + mt7986a-bananapi-bpi-r3-nand.dtbo \
>> + mt7986a-bananapi-bpi-r3-sata.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd-nand.dtb
>> mt7986a-bananapi-bpi-r3-sd-nor-dtbs := \
>> mt7986a-bananapi-bpi-r3.dtb \
>> mt7986a-bananapi-bpi-r3-sd.dtbo \
>> - mt7986a-bananapi-bpi-r3-nor.dtbo
>> + mt7986a-bananapi-bpi-r3-nor.dtbo \
>> + mt7986a-bananapi-bpi-r3-sata.dtbo
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd-nor.dtb
>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
>> diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
>> new file mode 100644
>> index 000000000000..6ab06813412a
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-sata.dtso
>> @@ -0,0 +1,39 @@
>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>> +/*
>> + * Copyright (C) 2021 MediaTek Inc.
>> + * Author: Frank Wunderlich <frank-w@public-files.de>
>> + */
>> +
>> +/dts-v1/;
>> +/plugin/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +
>> +/ {
>> + compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
>> +
>> + fragment@0 {
>> + target-path = "/";
>> + __overlay__ {
>
>This could be easier, I think.
>
>&{/} {
>
> reg_sata12v: regulator-sata12v {
> ....
> };
>
> something_else: something-else { ... };
>};
Need to try this.
>Regards,
>Angelo
>
>> + reg_sata12v: regulator-sata12v {
>> + compatible = "regulator-fixed";
>> + regulator-name = "sata12v";
>> + regulator-min-microvolt = <12000000>;
>> + regulator-max-microvolt = <12000000>;
>> + gpio = <&pio 8 GPIO_ACTIVE_HIGH>;
>> + enable-active-high;
>> + regulator-always-on;
>> + };
>> +
>> + reg_sata5v: regulator-sata5v {
>> + compatible = "regulator-fixed";
>> + regulator-name = "sata5v";
>> + regulator-min-microvolt = <5000000>;
>> + regulator-max-microvolt = <5000000>;
>> + regulator-always-on;
>> + vin-supply = <®_sata12v>;
>> + };
>> + };
>> + };
>> +};
>> +
>
regards Frank
@@ -13,26 +13,31 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sata.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
mt7986a-bananapi-bpi-r3-emmc-nand-dtbs := \
mt7986a-bananapi-bpi-r3.dtb \
mt7986a-bananapi-bpi-r3-emmc.dtbo \
- mt7986a-bananapi-bpi-r3-nand.dtbo
+ mt7986a-bananapi-bpi-r3-nand.dtbo \
+ mt7986a-bananapi-bpi-r3-sata.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc-nand.dtb
mt7986a-bananapi-bpi-r3-emmc-nor-dtbs := \
mt7986a-bananapi-bpi-r3.dtb \
mt7986a-bananapi-bpi-r3-emmc.dtbo \
- mt7986a-bananapi-bpi-r3-nor.dtbo
+ mt7986a-bananapi-bpi-r3-nor.dtbo \
+ mt7986a-bananapi-bpi-r3-sata.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc-nor.dtb
mt7986a-bananapi-bpi-r3-sd-nand-dtbs := \
mt7986a-bananapi-bpi-r3.dtb \
mt7986a-bananapi-bpi-r3-sd.dtbo \
- mt7986a-bananapi-bpi-r3-nand.dtbo
+ mt7986a-bananapi-bpi-r3-nand.dtbo \
+ mt7986a-bananapi-bpi-r3-sata.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd-nand.dtb
mt7986a-bananapi-bpi-r3-sd-nor-dtbs := \
mt7986a-bananapi-bpi-r3.dtb \
mt7986a-bananapi-bpi-r3-sd.dtbo \
- mt7986a-bananapi-bpi-r3-nor.dtbo
+ mt7986a-bananapi-bpi-r3-nor.dtbo \
+ mt7986a-bananapi-bpi-r3-sata.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd-nor.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
new file mode 100644
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
+
+ fragment@0 {
+ target-path = "/";
+ __overlay__ {
+ reg_sata12v: regulator-sata12v {
+ compatible = "regulator-fixed";
+ regulator-name = "sata12v";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ gpio = <&pio 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ reg_sata5v: regulator-sata5v {
+ compatible = "regulator-fixed";
+ regulator-name = "sata5v";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ vin-supply = <®_sata12v>;
+ };
+ };
+ };
+};
+