mbox series

[v3,0/3] Add DTS for NanoPi R2S Plus

Message ID 20240814170048.23816-1-jin@mediatomb.cc (mailing list archive)
Headers show
Series Add DTS for NanoPi R2S Plus | expand

Message

Sergey 'Jin' Bostandzhyan Aug. 14, 2024, 5 p.m. UTC
Hi,                                                                              
                                                                                 
here is version 3 of the NanoPi R2S Plus patchset.

* a commit which adds mmc-hs200-1_8v in order to improve eMMC performance has
  been included
* the licence header has been updated to the newer version, anw now includes
  optional MIT licensing


Sergey Bostandzhyan (3):
  arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus
  dt-bindings: arm: rockchip: Add NanoPi R2S Plus
  arm64: dts: rockchip: improve eMMC speed on NanoPi R2S Plus

 .../devicetree/bindings/arm/rockchip.yaml     |  1 +
 arch/arm64/boot/dts/rockchip/Makefile         |  1 +
 .../dts/rockchip/rk3328-nanopi-r2s-plus.dts   | 32 +++++++++++++++++++
 3 files changed, 34 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts

Comments

Rob Herring (Arm) Aug. 15, 2024, 6:28 p.m. UTC | #1
On Wed, 14 Aug 2024 17:00:45 +0000, Sergey Bostandzhyan wrote:
> Hi,
> 
> here is version 3 of the NanoPi R2S Plus patchset.
> 
> * a commit which adds mmc-hs200-1_8v in order to improve eMMC performance has
>   been included
> * the licence header has been updated to the newer version, anw now includes
>   optional MIT licensing
> 
> 
> Sergey Bostandzhyan (3):
>   arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus
>   dt-bindings: arm: rockchip: Add NanoPi R2S Plus
>   arm64: dts: rockchip: improve eMMC speed on NanoPi R2S Plus
> 
>  .../devicetree/bindings/arm/rockchip.yaml     |  1 +
>  arch/arm64/boot/dts/rockchip/Makefile         |  1 +
>  .../dts/rockchip/rk3328-nanopi-r2s-plus.dts   | 32 +++++++++++++++++++
>  3 files changed, 34 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
> 
> --
> 2.20.1
> 
> 
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y rockchip/rk3328-nanopi-r2s-plus.dtb' for 20240814170048.23816-1-jin@mediatomb.cc:

arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dtb: hdmi@ff3c0000: interrupts: [[0, 35, 4], [0, 71, 4]] is too long
	from schema $id: http://devicetree.org/schemas/display/rockchip/rockchip,dw-hdmi.yaml#
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dtb: /phy@ff430000: failed to match any schema with compatible: ['rockchip,rk3328-hdmi-phy']
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dtb: /clock-controller@ff440000: failed to match any schema with compatible: ['rockchip,rk3328-cru', 'rockchip,cru', 'syscon']
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dtb: /clock-controller@ff440000: failed to match any schema with compatible: ['rockchip,rk3328-cru', 'rockchip,cru', 'syscon']
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dtb: mmc@ff520000: Unevaluated properties are not allowed ('num-slots', 'supports-emmc' were unexpected)
	from schema $id: http://devicetree.org/schemas/mmc/rockchip-dw-mshc.yaml#
Heiko Stuebner Aug. 15, 2024, 8:18 p.m. UTC | #2
On Wed, 14 Aug 2024 17:00:45 +0000, Sergey Bostandzhyan wrote:
> 
> here is version 3 of the NanoPi R2S Plus patchset.
> 
> * a commit which adds mmc-hs200-1_8v in order to improve eMMC performance has
>   been included
> * the licence header has been updated to the newer version, anw now includes
>   optional MIT licensing
> 
> [...]

Applied, thanks!

[1/3] arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus
      commit: b8c02878292200ebb5b4a8cfc9dbf227327908bd
[2/3] dt-bindings: arm: rockchip: Add NanoPi R2S Plus
      commit: e68b29cb711e80b1bd50366c5cdf8310c9ac24f3
[3/3] arm64: dts: rockchip: improve eMMC speed on NanoPi R2S Plus
       ... I've folded this commit into the first patch

Best regards,
Sergey 'Jin' Bostandzhyan Aug. 15, 2024, 11:26 p.m. UTC | #3
On Thu, Aug 15, 2024 at 10:18:45PM +0200, Heiko Stuebner wrote:
> On Wed, 14 Aug 2024 17:00:45 +0000, Sergey Bostandzhyan wrote:
> > 
> > here is version 3 of the NanoPi R2S Plus patchset.
> > 
> > * a commit which adds mmc-hs200-1_8v in order to improve eMMC performance has
> >   been included
> > * the licence header has been updated to the newer version, anw now includes
> >   optional MIT licensing
> > 
> > [...]
> 
> Applied, thanks!

Awesome, thank you for the guidance and for staying with me on this! :)

Kind regards,
Sergey
m.plak@icloud.com Aug. 25, 2024, 4:28 p.m. UTC | #4
Hello Sergey,

On 14 Aug 2024, at 19:00, Sergey Bostandzhyan <jin@mediatomb.cc> wrote:
> here is version 3 of the NanoPi R2S Plus patchset.


Thanks! I was just experimenting with a patch for that board.


eMMC:

A close cousin of that board, the NanoPi R2C Plus, similarly adds eMMC to 
its base version, R2C.

R2C Plus is already supported by rk3328-nanopi-r2c-plus.dts.

The r2c-plus DTS file differs slightly from your patch.
Would it not be better to use the same fragment for both r2s-plus and r2c-plus? 
Or even place the eMMC activation in a shared dtsi file?


I’ve compared the two and the friendlyelec kernel (not u-boot) sources.
 your patch does not contain these lines from r2c-plus:
    vmmc-supply = <&vcc_io_33>;
    vqmmc-supply = <&vcc18_emmc>;
    mmc-ddr-1_8v;

your patch adds these lines that are not in r2c-plus:
    supports-emmc;
    disable-wp;
    num-slots = <1>;

r2c-plus has a line that is in rk3328.dtsi already:
    max-frequency = <150000000>; 

the friendlyelec kernel sources also add:
    no-sd;


From the description in the mmc-controller binding documentation, I believe
disable-wp should not be used. The description for no-sd  I find confusing.
Can't find num-slots and supports-emmc there.

The RK3288 datasheet does not mention support for DDR mode, so mmc-ddr-1_8v 
surprises me a bit. The datasheet does explicitly mention that HS400 is _not_ 
supported.


USB:

Another change with the Plus version of the R2S is that the USB 2.0 port that 
used to be wired to the ethernet chip now is used for an external USB port. 
I don’t have the hardware here (yet), so can't test if that USB 2.0 and the 
USB 3.0 work independently or need to be explicitly separated.


refs:
Documentation/devicetree/bindings/mmc/mmc-controller.yaml
Sergey 'Jin' Bostandzhyan Aug. 26, 2024, 9:12 a.m. UTC | #5
Hi,

On Sun, Aug 25, 2024 at 06:28:44PM +0200, m.plak@icloud.com wrote:
> On 14 Aug 2024, at 19:00, Sergey Bostandzhyan <jin@mediatomb.cc> wrote:
> > here is version 3 of the NanoPi R2S Plus patchset.
> 
> 
> Thanks! I was just experimenting with a patch for that board.
> 
> 
> eMMC:
> 
> A close cousin of that board, the NanoPi R2C Plus, similarly adds eMMC to 
> its base version, R2C.
> 
> R2C Plus is already supported by rk3328-nanopi-r2c-plus.dts.
> 
> The r2c-plus DTS file differs slightly from your patch.
> Would it not be better to use the same fragment for both r2s-plus and r2c-plus? 
> Or even place the eMMC activation in a shared dtsi file?

thank you for the additional review and testing!
If you followed the thread, then you probably know that I was way over my head
here, as I operate soleley in user space :) I was building a Yocto image for this
board for one of my clients and I figured I'll try to submit something that was 
already present in the FriendlyElec repos and which worked for me and with the 
help and guidance from Heiko and others we managed to get it in, which concluded 
my kernel adventure.

It'll be great if you or anyone else is willing to continue from this starting
point if further improvements are needed, because I unfortunately do not have the
capacity for it - I am happy if hardware "just works" and
very much appreciate the abstraction APIs that the kernel provides to folks like
me :)

> I’ve compared the two and the friendlyelec kernel (not u-boot) sources.
>  your patch does not contain these lines from r2c-plus:
>     vmmc-supply = <&vcc_io_33>;
>     vqmmc-supply = <&vcc18_emmc>;
>     mmc-ddr-1_8v;
> 
> your patch adds these lines that are not in r2c-plus:
>     supports-emmc;
>     disable-wp;
>     num-slots = <1>;
> 
> r2c-plus has a line that is in rk3328.dtsi already:
>     max-frequency = <150000000>; 
> 
> the friendlyelec kernel sources also add:
>     no-sd;
> 
> 
> From the description in the mmc-controller binding documentation, I believe
> disable-wp should not be used. The description for no-sd  I find confusing.
> Can't find num-slots and supports-emmc there.
> 
> The RK3288 datasheet does not mention support for DDR mode, so mmc-ddr-1_8v 
> surprises me a bit. The datasheet does explicitly mention that HS400 is _not_ 
> supported.

The mmc-ddr-1_8v change was suggested during review and I was asked to test if it
works and improves the eMMC speed (it did). Back then I have asked if someone who
knows what they are doing could take over, because I honestly have no clue
what these things do on hardware level and what the implications here are.
I was not let off the hook though, so I have just followed the instructions
of the reviewers. If it is not in the datasheed, then perhaps this line should
be removed after all?

> USB:
> 
> Another change with the Plus version of the R2S is that the USB 2.0 port that 
> used to be wired to the ethernet chip now is used for an external USB port. 
> I don’t have the hardware here (yet), so can't test if that USB 2.0 and the 
> USB 3.0 work independently or need to be explicitly separated.

Good to know that there may be an issue, to be honest I did not test USB
explicitly, but both ethernet ports work. I did not modify anything in that
regard anyway, since the R2S (non Plus) version was in the kernel already and
I just copy-pasted the eMMC lines from the FriendlyElec devicetree on top of that
to get eMMC to show up.

We only needed ethernet and eMMC to work on the R2S Plus, so we did not test
anything besides that.

I still have the hardware here, so I could quickly test a thing or two if
needed, just please make sure to e-mail me directly as I have already unsubscribed
from the mailing lists.

Kind regards,
Sergey