[PATCH v2 5/5] arm64: dts: mt7986: add overlay for SATA power socket on BPI-R3

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Thu Oct 26 01:03:08 PDT 2023


Il 25/10/23 19:08, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w at 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 at 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 at public-files.de>
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +/ {
> +	compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
> +
> +	fragment at 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 = <&reg_sata12v>;
> +			};
> +		};
> +	};
> +};
> +




More information about the linux-arm-kernel mailing list