Linux-Clk Archive mirror
 help / color / mirror / Atom feed
From: Daniel Golle <daniel@makrotopia.org>
To: Frank Wunderlich <frank-w@public-files.de>
Cc: AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Frank Wunderlich <linux@fw-web.de>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Eric Woudstra <ericwouds@gmail.com>,
	Tianling Shen <cnsztl@immortalwrt.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-clk@vger.kernel.org, linux-leds@vger.kernel.org,
	netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	Tianling Shen <cnsztl@gmail.com>
Subject: Re: [RFC v1 5/5] arm64: dts: mediatek: Add mt7986 based Bananapi R3 Mini
Date: Mon, 6 May 2024 17:12:15 +0100	[thread overview]
Message-ID: <ZjkBX9T_xzx1D66m@makrotopia.org> (raw)
In-Reply-To: <3E013BA7-0264-4AC3-B677-BDD16B1F8D90@public-files.de>

On Mon, May 06, 2024 at 06:00:30PM +0200, Frank Wunderlich wrote:
> Hi
> 
> Thanks for review.
> 
> Am 6. Mai 2024 14:48:59 MESZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>:
> >Il 05/05/24 18:45, Frank Wunderlich ha scritto:
> >> From: Frank Wunderlich <frank-w@public-files.de>
> >> 
> >> Add device Tree for Bananapi R3 Mini SBC.
> >> 
> >> Co-developed-by: Eric Woudstra <ericwouds@gmail.com>
> >> Signed-off-by: Eric Woudstra <ericwouds@gmail.com>
> >> Co-developed-by: Tianling Shen <cnsztl@gmail.com>
> >> Signed-off-by: Tianling Shen <cnsztl@gmail.com>
> >> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> >> ---
> >>   arch/arm64/boot/dts/mediatek/Makefile         |   1 +
> >>   .../mediatek/mt7986a-bananapi-bpi-r3-mini.dts | 486 ++++++++++++++++++
> >>   2 files changed, 487 insertions(+)
> >>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts
> >> 
> >> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
> >> index 37b4ca3a87c9..1763b001ab06 100644
> >> --- a/arch/arm64/boot/dts/mediatek/Makefile
> >> +++ b/arch/arm64/boot/dts/mediatek/Makefile
> >> @@ -11,6 +11,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb
> >>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7981b-xiaomi-ax3000t.dtb
> >>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-acelink-ew-7886cax.dtb
> >>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb
> >> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-mini.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
> >> diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts
> >> new file mode 100644
> >> index 000000000000..c764b4dc4752
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts
> >> @@ -0,0 +1,486 @@
> >> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> >> +/*
> >> + * Copyright (C) 2021 MediaTek Inc.
> >> + * Authors: Frank Wunderlich <frank-w@public-files.de>
> >> + *          Eric Woudstra <ericwouds@gmail.com>
> >> + *          Tianling Shen <cnsztl@immortalwrt.org>
> >> + */
> >> +
> >> +/dts-v1/;
> >> +
> >> +#include <dt-bindings/gpio/gpio.h>
> >> +#include <dt-bindings/input/input.h>
> >> +#include <dt-bindings/leds/common.h>
> >> +#include <dt-bindings/pinctrl/mt65xx.h>
> >> +
> >> +#include "mt7986a.dtsi"
> >> +
> >> +/ {
> >> +	model = "Bananapi BPI-R3 Mini";
> >> +	chassis-type = "embedded";
> >> +	compatible = "bananapi,bpi-r3mini", "mediatek,mt7986a";
> >> +
> >> +	aliases {
> >> +		serial0 = &uart0;
> >> +		ethernet0 = &gmac0;
> >> +		ethernet1 = &gmac1;
> >> +	};
> >> +
> >> +	chosen {
> >> +		stdout-path = "serial0:115200n8";
> >> +	};
> >> +
> >> +	dcin: regulator-12vd {
> >> +		compatible = "regulator-fixed";
> >> +		regulator-name = "12vd";
> >> +		regulator-min-microvolt = <12000000>;
> >> +		regulator-max-microvolt = <12000000>;
> >> +		regulator-boot-on;
> >> +		regulator-always-on;
> >> +	};
> >> +
> >> +	fan: pwm-fan {
> >> +		compatible = "pwm-fan";
> >> +		#cooling-cells = <2>;
> >> +		/* cooling level (0, 1, 2) - pwm inverted */
> >> +		cooling-levels = <255 96 0>;
> >
> >Did you try to actually invert the PWM?
> >
> >Look for PWM_POLARITY_INVERTED ;-)
> 
> Mtk pwm driver does not support it
> 
> https://elixir.bootlin.com/linux/latest/source/drivers/pwm/pwm-mediatek.c#L211
> 
> >> +		pwms = <&pwm 0 10000>;
> >> +		status = "okay";
> >> +	};
> >> +
> >> +	reg_1p8v: regulator-1p8v {
> >> +		compatible = "regulator-fixed";
> >> +		regulator-name = "1.8vd";
> >> +		regulator-min-microvolt = <1800000>;
> >> +		regulator-max-microvolt = <1800000>;
> >> +		regulator-boot-on;
> >> +		regulator-always-on;
> >> +		vin-supply = <&dcin>;
> >> +	};
> >> +
> >> +	reg_3p3v: regulator-3p3v {
> >> +		compatible = "regulator-fixed";
> >> +		regulator-name = "3.3vd";
> >> +		regulator-min-microvolt = <3300000>;
> >> +		regulator-max-microvolt = <3300000>;
> >> +		regulator-boot-on;
> >> +		regulator-always-on;
> >> +		vin-supply = <&dcin>;
> >> +	};
> >> +
> >> +	usb_vbus: regulator-usb-vbus {
> >> +		compatible = "regulator-fixed";
> >> +		regulator-name = "usb_vbus";
> >> +		regulator-min-microvolt = <5000000>;
> >> +		regulator-max-microvolt = <5000000>;
> >> +		gpios = <&pio 20 GPIO_ACTIVE_LOW>;
> >> +		regulator-boot-on;
> >> +	};
> >> +
> >> +	en8811_a: regulator-phy1 {
> >> +		compatible = "regulator-fixed";
> >> +		regulator-name = "phy1";
> >> +		regulator-min-microvolt = <3300000>;
> >> +		regulator-max-microvolt = <3300000>;
> >> +		gpio = <&pio 16 GPIO_ACTIVE_LOW>;
> >> +		regulator-always-on;
> >> +	};
> >> +
> >> +	en8811_b: regulator-phy2 {
> >> +		compatible = "regulator-fixed";
> >> +		regulator-name = "phy2";
> >> +		regulator-min-microvolt = <3300000>;
> >> +		regulator-max-microvolt = <3300000>;
> >> +		gpio = <&pio 17 GPIO_ACTIVE_LOW>;
> >> +		regulator-always-on;
> >> +	};
> >> +
> >> +	leds {
> >> +		compatible = "gpio-leds";
> >> +
> >> +		green_led: led-0 {
> >> +			color = <LED_COLOR_ID_GREEN>;
> >> +			function = LED_FUNCTION_POWER;
> >> +			gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
> >> +			default-state = "on";
> >> +		};
> >> +	};
> >> +
> >> +	gpio-keys {
> >> +		compatible = "gpio-keys";
> >> +
> >> +		reset-key {
> >> +			label = "reset";
> >> +			linux,code = <KEY_RESTART>;
> >> +			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
> >> +		};
> >> +	};
> >> +
> >> +};
> >> +
> >> +&cpu_thermal {
> >> +	cooling-maps {
> >> +		map0 {
> >> +			/* active: set fan to cooling level 2 */
> >> +			cooling-device = <&fan 2 2>;
> >> +			trip = <&cpu_trip_active_high>;
> >> +		};
> >> +
> >> +		map1 {
> >> +			/* active: set fan to cooling level 1 */
> >> +			cooling-device = <&fan 1 1>;
> >> +			trip = <&cpu_trip_active_med>;
> >> +		};
> >> +
> >> +		map2 {
> >> +			/* active: set fan to cooling level 0 */
> >> +			cooling-device = <&fan 0 0>;
> >> +			trip = <&cpu_trip_active_low>;
> >> +		};
> >> +	};
> >> +};
> >> +
> >> +&crypto {
> >> +	status = "okay";
> >> +};
> >> +
> >> +&eth {
> >> +	status = "okay";
> >> +
> >> +	gmac0: mac@0 {
> >> +		compatible = "mediatek,eth-mac";
> >> +		reg = <0>;
> >> +		phy-mode = "2500base-x";
> >> +		phy-handle = <&phy14>;
> >> +	};
> >> +
> >> +	gmac1: mac@1 {
> >> +		compatible = "mediatek,eth-mac";
> >> +		reg = <1>;
> >> +		phy-mode = "2500base-x";
> >> +		phy-handle = <&phy15>;
> >> +	};
> >> +
> >> +	mdio: mdio-bus {
> >> +		#address-cells = <1>;
> >> +		#size-cells = <0>;
> >> +	};
> >> +};
> >> +
> >> +&mmc0 {
> >> +	pinctrl-names = "default", "state_uhs";
> >> +	pinctrl-0 = <&mmc0_pins_default>;
> >> +	pinctrl-1 = <&mmc0_pins_uhs>;
> >> +	vmmc-supply = <&reg_3p3v>;
> >> +	vqmmc-supply = <&reg_1p8v>;
> >> +};
> >> +
> >> +
> >> +&i2c0 {
> >> +	pinctrl-names = "default";
> >> +	pinctrl-0 = <&i2c_pins>;
> >> +	status = "okay";
> >> +
> >> +	/* MAC Address EEPROM */
> >> +	eeprom@50 {
> >> +		compatible = "atmel,24c02";
> >> +		reg = <0x50>;
> >> +
> >> +		address-width = <8>;
> >> +		pagesize = <8>;
> >> +		size = <256>;
> >> +	};
> >> +};
> >> +
> >> +&mdio {
> >
> >You can just move all this stuff to where you declare the mdio-bus....
> 
> Ok,see these 2 lines are already above,so can be dropped here.
> 
> >> +	#address-cells = <1>;
> >> +	#size-cells = <0>;
> >> +
> >> +	phy14: ethernet-phy@14 {
> >
> >I say that this is `phy0: ethernet-phy@14` - because this is the first PHY on this
> >board.
> 
> Ok,i change this and phy15
> 
> >> +		reg = <14>;
> >
> >Uhm.. doesn't this require the ethernet-phy-id03a2.a411 compatible?
> 
> I can add it,but worked without it.
> 
> There was a discussion about that and result was we don't need it in board dts,maybe add compatible in binding example.
> 
> https://patchwork.kernel.org/project/netdevbpf/patch/20240206194751.1901802-2-ericwouds@gmail.com/#25703356

I confirm that setting the PHY ID in DT is **not** needed.

The PHY probes fine and it's possible to read the PHY ID even before
firmware has been loaded.

> 
> >> +		interrupts-extended = <&pio 48 IRQ_TYPE_EDGE_FALLING>;
> >> +		reset-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
> >> +		reset-assert-us = <10000>;
> >> +		reset-deassert-us = <20000>;
> >> +		phy-mode = "2500base-x";
> >> +		full-duplex;
> >> +		pause;
> >> +		airoha,pnswap-rx;
> >> +
> >> +		leds {
> >> +			#address-cells = <1>;
> >> +			#size-cells = <0>;
> >> +
> >> +			led@0 { /* en8811_a_gpio5 */
> >> +				reg = <0>;
> >> +				color = <LED_COLOR_ID_YELLOW>;
> >> +				function = LED_FUNCTION_LAN;
> >> +				function-enumerator = <1>;
> >
> >Why aren't you simply using a label?
> 
> You mean the comment? I can add it of course like for regulators.
> 
> >> +				default-state = "keep";
> >> +				linux,default-trigger = "netdev";

Using linux,default-trigger = "netdev" will NOT work as intended,
see also the reply to your other patch where you are adding netdev
trigger to dt-bindings.
If you do this, it will seemingly work, but if you check
/sys/class/leds/foo/hw_control
it will always be 0, and hardware offloading will hence never be used.
Please just set the LED trigger in userspace for now.

> >> +			};
> >> +			led@1 { /* en8811_a_gpio4 */
> >> +				reg = <1>;
> >> +				color = <LED_COLOR_ID_GREEN>;
> >> +				function = LED_FUNCTION_LAN;
> >> +				function-enumerator = <2>;
> >> +				default-state = "keep";
> >> +				linux,default-trigger = "netdev";
> >> +			};
> >> +		};
> >> +	};
> >> +
> >> +	phy15: ethernet-phy@15 {
> >> +		reg = <15>;
> >
> >Same here.
> >
> >Cheers,
> >Angelo
> >
> 
> 
> regards Frank
> 

  reply	other threads:[~2024-05-06 16:12 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-05 16:45 [RFC v1 0/5] Add Bananapi R3 Mini Frank Wunderlich
2024-05-05 16:45 ` [RFC v1 1/5] dt-bindings: leds: add led trigger netdev Frank Wunderlich
2024-05-06  8:18   ` Krzysztof Kozlowski
2024-05-06  8:59     ` Daniel Golle
2024-05-06 17:10     ` Aw: " Frank Wunderlich
2024-05-07  6:10       ` Krzysztof Kozlowski
2024-05-05 16:45 ` [RFC v1 2/5] dt-bindings: clock: mediatek: add address-cells and size-cells to ethsys Frank Wunderlich
2024-05-06  8:18   ` Krzysztof Kozlowski
2024-05-06 16:51     ` Aw: " Frank Wunderlich
2024-05-07 19:35       ` Rob Herring
2024-05-07 21:22         ` Aw: " Frank Wunderlich
2024-05-06 12:48   ` AngeloGioacchino Del Regno
2024-05-06 16:01     ` Frank Wunderlich
2024-05-07 13:36       ` AngeloGioacchino Del Regno
2024-05-05 16:45 ` [RFC v1 3/5] dt-bindings: net: mediatek,net: add reset-cells Frank Wunderlich
2024-05-06  8:19   ` Krzysztof Kozlowski
2024-05-07 19:37   ` Rob Herring
2024-05-05 16:45 ` [RFC v1 4/5] dt-bindings: arm64: dts: mediatek: add BananaPi R3 Mini Frank Wunderlich
2024-05-05 16:45 ` [RFC v1 5/5] arm64: dts: mediatek: Add mt7986 based Bananapi " Frank Wunderlich
2024-05-06  8:20   ` Krzysztof Kozlowski
2024-05-06 16:40     ` Aw: " Frank Wunderlich
2024-05-06 12:48   ` AngeloGioacchino Del Regno
2024-05-06 16:00     ` Frank Wunderlich
2024-05-06 16:12       ` Daniel Golle [this message]
2024-05-07 13:35       ` AngeloGioacchino Del Regno
2024-05-08 18:25         ` Aw: " Frank Wunderlich
2024-05-09 10:10           ` AngeloGioacchino Del Regno
2024-05-09 10:30             ` Frank Wunderlich
2024-05-09 10:35               ` AngeloGioacchino Del Regno
2024-05-06 20:40 ` [RFC v1 0/5] Add " Rob Herring (Arm)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZjkBX9T_xzx1D66m@makrotopia.org \
    --to=daniel@makrotopia.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=cnsztl@gmail.com \
    --cc=cnsztl@immortalwrt.org \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=ericwouds@gmail.com \
    --cc=frank-w@public-files.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux@fw-web.de \
    --cc=matthias.bgg@gmail.com \
    --cc=mturquette@baylibre.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pavel@ucw.cz \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).