2021-04-05 17:45:17

by Tianling Shen

[permalink] [raw]
Subject: [PATCH v2] rockchip: enabled LAN port on NanoPi R2S

From: David Bauer <[email protected]>

Enable the USB3 port on the FriendlyARM NanoPi R2S.
This is required for the USB3 attached LAN port to work.

Signed-off-by: David Bauer <[email protected]>
[added device node for USB Ethernet controller]
Signed-off-by: Tianling Shen <[email protected]>
---
.../boot/dts/rockchip/rk3328-nanopi-r2s.dts | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
index faf496d789cf..18936b393d9d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
@@ -13,6 +13,10 @@
model = "FriendlyElec NanoPi R2S";
compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";

+ aliases {
+ ethernet1 = &r8153;
+ };
+
chosen {
stdout-path = "serial2:1500000n8";
};
@@ -37,6 +41,16 @@
};
};

+ vcc_rtl8153: vcc-rtl8153-regulator {
+ compatible = "regulator-fixed";
+ gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rtl8153_en_drv>;
+ regulator-always-on;
+ regulator-name = "vcc_rtl8153";
+ enable-active-high;
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
@@ -265,6 +279,12 @@
};
};
};
+
+ usb {
+ rtl8153_en_drv: rtl8153-en-drv {
+ rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
};

&io_domains {
@@ -364,6 +384,18 @@
dr_mode = "host";
};

+&usbdrd3 {
+ dr_mode = "host";
+ status = "okay";
+
+ r8153: usb-eth@2 {
+ compatible = "realtek,rtl8153";
+ reg = <2>;
+
+ local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
+ };
+};
+
&usb_host0_ehci {
status = "okay";
};
--
2.17.1


2021-04-05 19:58:53

by Johan Jonker

[permalink] [raw]
Subject: Re: [PATCH v2] rockchip: enabled LAN port on NanoPi R2S

Hi Tianling,

On 4/5/21 11:34 AM, Tianling Shen wrote:
> From: David Bauer <[email protected]>
>
> Enable the USB3 port on the FriendlyARM NanoPi R2S.
> This is required for the USB3 attached LAN port to work.
>
> Signed-off-by: David Bauer <[email protected]>
> [added device node for USB Ethernet controller]
> Signed-off-by: Tianling Shen <[email protected]>
> ---
> .../boot/dts/rockchip/rk3328-nanopi-r2s.dts | 32 +++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> index faf496d789cf..18936b393d9d 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> @@ -13,6 +13,10 @@
> model = "FriendlyElec NanoPi R2S";
> compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
>
> + aliases {
> + ethernet1 = &r8153;
> + };
> +
> chosen {
> stdout-path = "serial2:1500000n8";
> };
> @@ -37,6 +41,16 @@
> };
> };
>

> + vcc_rtl8153: vcc-rtl8153-regulator {

sort nodename

> + compatible = "regulator-fixed";
> + gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&rtl8153_en_drv>;
> + regulator-always-on;

> + regulator-name = "vcc_rtl8153";

exception to the sort rule
sort regulator-name above all other regulator properties

> + enable-active-high;

sort

----
Heiko's sort rules:

compatible
reg
interrupts
[alphabetical]
status [if needed]

----

> + };
> +
> leds {
> compatible = "gpio-leds";
> pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
> @@ -265,6 +279,12 @@
> };
> };
> };
> +
> + usb {
> + rtl8153_en_drv: rtl8153-en-drv {
> + rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> };
>
> &io_domains {
> @@ -364,6 +384,18 @@
> dr_mode = "host";
> };
>
> +&usbdrd3 {
> + dr_mode = "host";
> + status = "okay";
> +

> + r8153: usb-eth@2 {

With YAML undocumented additional properties and nodes generate
notifications.
We need a change in the documents below for that.
rockchip,dwc3.yaml > usb-drd.yaml > usb.yaml

Is there a standard for the usb-eth nodename?

> + compatible = "realtek,rtl8153";

Since a while Rob has improved has scripts.
There's no escape anymore.
Add a YAML document to this serie for "realtek,rtl8153".

Improve checking for undocumented compatible strings
https://github.com/devicetree-org/dt-schema/commit/93e7ada8d53af099074cb5d53f7caa12835784e0

> + reg = <2>;

Why 2 ?

> +

> + local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */

This is a private property.
In a generic dts that's up to the user.

> + };
> +};
> +
> &usb_host0_ehci {
> status = "okay";
> };
>

2021-04-05 20:19:28

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v2] rockchip: enabled LAN port on NanoPi R2S

On Mon, Apr 5, 2021 at 7:03 PM Johan Jonker <[email protected]> wrote:
>
> Hi Tianling,
>
> On 4/5/21 11:34 AM, Tianling Shen wrote:
> > From: David Bauer <[email protected]>
> >
> > Enable the USB3 port on the FriendlyARM NanoPi R2S.
> > This is required for the USB3 attached LAN port to work.
> >
> > Signed-off-by: David Bauer <[email protected]>
> > [added device node for USB Ethernet controller]
> > Signed-off-by: Tianling Shen <[email protected]>
> > ---
> > .../boot/dts/rockchip/rk3328-nanopi-r2s.dts | 32 +++++++++++++++++++
> > 1 file changed, 32 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> > index faf496d789cf..18936b393d9d 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> > +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> > @@ -13,6 +13,10 @@
> > model = "FriendlyElec NanoPi R2S";
> > compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
> >
> > + aliases {
> > + ethernet1 = &r8153;
> > + };
> > +
> > chosen {
> > stdout-path = "serial2:1500000n8";
> > };
> > @@ -37,6 +41,16 @@
> > };
> > };
> >
>
> > + vcc_rtl8153: vcc-rtl8153-regulator {
>
> sort nodename
>
> > + compatible = "regulator-fixed";
> > + gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&rtl8153_en_drv>;
> > + regulator-always-on;
>
> > + regulator-name = "vcc_rtl8153";
>
> exception to the sort rule
> sort regulator-name above all other regulator properties
>
> > + enable-active-high;
>
> sort
>
> ----
> Heiko's sort rules:
>
> compatible
> reg
> interrupts
> [alphabetical]
> status [if needed]
>
> ----
>
> > + };
> > +
> > leds {
> > compatible = "gpio-leds";
> > pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
> > @@ -265,6 +279,12 @@
> > };
> > };
> > };
> > +
> > + usb {
> > + rtl8153_en_drv: rtl8153-en-drv {
> > + rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> > + };
> > + };
> > };
> >
> > &io_domains {
> > @@ -364,6 +384,18 @@
> > dr_mode = "host";
> > };
> >
> > +&usbdrd3 {
> > + dr_mode = "host";
> > + status = "okay";
> > +
>
> > + r8153: usb-eth@2 {
>
> With YAML undocumented additional properties and nodes generate
> notifications.
> We need a change in the documents below for that.
> rockchip,dwc3.yaml > usb-drd.yaml > usb.yaml
>
> Is there a standard for the usb-eth nodename?

The USB devices binding seems to specify "device" and then
"interface" sub-nodes.

> > + compatible = "realtek,rtl8153";
>
> Since a while Rob has improved has scripts.
> There's no escape anymore.
> Add a YAML document to this serie for "realtek,rtl8153".

Actually it should be "usbbda,8153", which conforms to

Documentation/devicetree/bindings/usb/usb-device.yaml

Giving "realtek,rtl8153" to the kernel will not help it match any
device.

ChenYu

> Improve checking for undocumented compatible strings
> https://github.com/devicetree-org/dt-schema/commit/93e7ada8d53af099074cb5d53f7caa12835784e0
>
> > + reg = <2>;
>
> Why 2 ?
>
> > +
>
> > + local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
>
> This is a private property.
> In a generic dts that's up to the user.
>
> > + };
> > +};
> > +
> > &usb_host0_ehci {
> > status = "okay";
> > };
> >
>

2021-04-07 02:05:28

by Tianling Shen

[permalink] [raw]
Subject: Re: [PATCH v2] rockchip: enabled LAN port on NanoPi R2S

Hi Johan,

On 2021-04-05 19:03, Johan Jonker <[email protected]> wrote:
>
> Hi Tianling,
>
> On 4/5/21 11:34 AM, Tianling Shen wrote:
> > From: David Bauer <[email protected]>
> >
> > Enable the USB3 port on the FriendlyARM NanoPi R2S.
> > This is required for the USB3 attached LAN port to work.
> >
> > Signed-off-by: David Bauer <[email protected]>
> > [added device node for USB Ethernet controller]
> > Signed-off-by: Tianling Shen <[email protected]>
> > ---
> > .../boot/dts/rockchip/rk3328-nanopi-r2s.dts | 32 +++++++++++++++++++
> > 1 file changed, 32 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> > index faf496d789cf..18936b393d9d 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> > +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
> > @@ -13,6 +13,10 @@
> > model = "FriendlyElec NanoPi R2S";
> > compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
> >
> > + aliases {
> > + ethernet1 = &r8153;
> > + };
> > +
> > chosen {
> > stdout-path = "serial2:1500000n8";
> > };
> > @@ -37,6 +41,16 @@
> > };
> > };
> >
>
> > + vcc_rtl8153: vcc-rtl8153-regulator {
>
> sort nodename
>
> > + compatible = "regulator-fixed";
> > + gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&rtl8153_en_drv>;
> > + regulator-always-on;
>
> > + regulator-name = "vcc_rtl8153";
>
> exception to the sort rule
> sort regulator-name above all other regulator properties
>
> > + enable-active-high;
>
> sort
>
> ----
> Heiko's sort rules:
>
> compatible
> reg
> interrupts
> [alphabetical]
> status [if needed]
>
> ----

Thank you very much, and I will update it in v3.

>
> > + };
> > +
> > leds {
> > compatible = "gpio-leds";
> > pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
> > @@ -265,6 +279,12 @@
> > };
> > };
> > };
> > +
> > + usb {
> > + rtl8153_en_drv: rtl8153-en-drv {
> > + rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> > + };
> > + };
> > };
> >
> > &io_domains {
> > @@ -364,6 +384,18 @@
> > dr_mode = "host";
> > };
> >
> > +&usbdrd3 {
> > + dr_mode = "host";
> > + status = "okay";
> > +
>
> > + r8153: usb-eth@2 {
>
> With YAML undocumented additional properties and nodes generate
> notifications.
> We need a change in the documents below for that.
> rockchip,dwc3.yaml > usb-drd.yaml > usb.yaml
>
> Is there a standard for the usb-eth nodename?
>
> > + compatible = "realtek,rtl8153";
>
> Since a while Rob has improved has scripts.
> There's no escape anymore.
> Add a YAML document to this serie for "realtek,rtl8153".

This is actually added by another patch[1], but doesn't go to upstream yet.
I'll ask David if he would like to submit it.

Kindly ping David.

1:
https://github.com/openwrt/openwrt/blob/master/target/linux/rockchip/patches-5.10/002-net-usb-r8152-add-LED-configuration-from-OF.patch
https://github.com/openwrt/openwrt/blob/master/target/linux/rockchip/patches-5.10/003-dt-bindings-net-add-RTL8152-binding-documentation.patch

>
> Improve checking for undocumented compatible strings
> https://github.com/devicetree-org/dt-schema/commit/93e7ada8d53af099074cb5d53f7caa12835784e0
>
> > + reg = <2>;
>
> Why 2 ?
>

This is the device number on the USB bus.

> > +
>
> > + local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
>
> This is a private property.
> In a generic dts that's up to the user.

Okay I will drop this.

Thanks,
Tianling.

>
> > + };
> > +};
> > +
> > &usb_host0_ehci {
> > status = "okay";
> > };
> >
>