2023-08-02 22:24:03

by Martin Botka

[permalink] [raw]
Subject: [PATCH v1 6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support

The BigTreeTech Pi is an H616 based board based on CB1.
Just in Rpi format board.

It features the same internals as BTT CB1 but adds:
- Fan port
- IR receiver
- 24V DC power supply via terminal plugs
- USB to CAN module connector (The actual USB to CAN happens on the external module)

List of currently working things is the same as BTT CB1.

Signed-off-by: Martin Botka <[email protected]>
---
.../allwinner/sun50i-h616-bigtreetech-pi.dts | 44 +++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
new file mode 100644
index 000000000000..05f39b3606ba
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2023 Martin Botka <[email protected]>.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616-bigtreetech-cb1.dtsi"
+
+/ {
+ compatible = "bigtreetech,pi", "allwinner,sun50i-h616";
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&ohci1 {
+ status = "okay";
+};
+
+&ehci2 {
+ status = "okay";
+};
+
+&ohci2 {
+ status = "okay";
+};
+
+&ehci3 {
+ status = "okay";
+};
+
+&ohci3 {
+ status = "okay";
+};
--
2.41.0



2023-08-03 13:04:59

by Andre Przywara

[permalink] [raw]
Subject: Re: [PATCH v1 6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support

On Thu, 3 Aug 2023 00:02:39 +0200
Martin Botka <[email protected]> wrote:

Hi,

> The BigTreeTech Pi is an H616 based board based on CB1.
> Just in Rpi format board.
>
> It features the same internals as BTT CB1 but adds:
> - Fan port
> - IR receiver

You would then need to enable the "ir" node, check the X96 Mate .dts.

And I think this "ADXL345 SPI" connector justifies enabling the respective
SPI node.

> - 24V DC power supply via terminal plugs
> - USB to CAN module connector (The actual USB to CAN happens on the external module)

Still confused how this works. So you would need to connect an USB->CAN
adapter to one of the USB ports, but how do you feed the CAN signal back
to the board? Or if this is done via this port, where does it go then? To
the GPIO header?

> List of currently working things is the same as BTT CB1.
>
> Signed-off-by: Martin Botka <[email protected]>
> ---
> .../allwinner/sun50i-h616-bigtreetech-pi.dts | 44 +++++++++++++++++++

Please wire this up in the Makefile as well, otherwise we will miss out on
the build testing and DTB checking.

> 1 file changed, 44 insertions(+)
> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> new file mode 100644
> index 000000000000..05f39b3606ba
> --- /dev/null
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> @@ -0,0 +1,44 @@
> +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
> +/*
> + * Copyright (C) 2023 Martin Botka <[email protected]>.
> + */
> +
> +/dts-v1/;
> +
> +#include "sun50i-h616-bigtreetech-cb1.dtsi"
> +
> +/ {
> + compatible = "bigtreetech,pi", "allwinner,sun50i-h616";
> +};
> +
> +&ehci0 {
> + status = "okay";
> +};
> +
> +&ohci0 {
> + status = "okay";
> +};
> +
> +&ehci1 {
> + status = "okay";
> +};
> +
> +&ohci1 {
> + status = "okay";
> +};
> +
> +&ehci2 {
> + status = "okay";
> +};
> +
> +&ohci2 {
> + status = "okay";
> +};
> +
> +&ehci3 {
> + status = "okay";
> +};
> +
> +&ohci3 {
> + status = "okay";
> +};

Oh wow, it really connects all four USB ports directly to the SoC? Nice.
Do you have access to the schematic to check what the power supply
situation is? Are all ports hardwired to a fixed 5V source?

And you would of course need to adjust this file according to the
changes requested in the previous patch, so that you have the UART,
stdout-path and other moved nodes in here.

Cheers,
Andre

2023-08-03 15:35:42

by Martin Botka

[permalink] [raw]
Subject: Re: [PATCH v1 6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support



On 8/3/23 4:49 PM, Andre Przywara wrote:
> On Thu, 3 Aug 2023 16:30:06 +0200
> Krzysztof Kozlowski <[email protected]> wrote:
>
>> On 03/08/2023 00:02, Martin Botka wrote:
>>> The BigTreeTech Pi is an H616 based board based on CB1.
>>> Just in Rpi format board.
>>>
>>> It features the same internals as BTT CB1 but adds:
>>> - Fan port
>>> - IR receiver
>>> - 24V DC power supply via terminal plugs
>>> - USB to CAN module connector (The actual USB to CAN happens on the external module)
>>>
>>> List of currently working things is the same as BTT CB1.
>>>
>>> Signed-off-by: Martin Botka <[email protected]>
>>> ---
>>> .../allwinner/sun50i-h616-bigtreetech-pi.dts | 44 +++++++++++++++++++
>>> 1 file changed, 44 insertions(+)
>>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>>>
>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>>> new file mode 100644
>>> index 000000000000..05f39b3606ba
>>> --- /dev/null
>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>>> @@ -0,0 +1,44 @@
>>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
>>> +/*
>>> + * Copyright (C) 2023 Martin Botka <[email protected]>.
>>> + */
>>> +
>>> +/dts-v1/;
>>> +
>>> +#include "sun50i-h616-bigtreetech-cb1.dtsi"
>>
>> If this is using CB1 DTSI, does it mean it uses CB1 SoM? If so, I think
>> this should be reflected in the compatibles.
>>
>> It's a bit confusing because in previous patch you call it "CB1 board"
>> but then with name "Manta"... So what is CB1?
>
> That's indeed a bit confusing, but from what I got from the BTT webpage:
> "CB1" is the SoM. M8P (and its M4P/M5P siblings) are carrier boards with
> extra hardware for 3D printer support, taking the CB1 SoM.
> The "Bigtreetech BTT Pi" is embedding the same hardware as the SoM, but
> without actually using the SoM, directly on a PCB, so similar to what we
> have with the Pine64 SoPine and the Pine64 LTS board. It doesn't come with
> the extra goodies of the more 3D printer related boards.
>
> I *think* the "BIGTREETECH PI4B Adapter" is a normal dev board using the
> actual SoM, but with an otherwise identical(?) functionality software wise
> - so it can run with the same DTB. I wonder if we should have a separate
> .dts for this, though, since I believe it's not really identical in every
> aspect - starting with the USB ports, for instance.
>
> But for this board and patch here I think it's fine to include the
> cb1.dtsi, but not using the CB1 name in the compatibles list.
>

You got it perfectly Andre :) Yes CB1 is an SoM and Manta boards and BTT
Pi4B adapter board are just carriers of this SoM. PI4B board uses the
same DTB as manta boards. It also has the same USB hub and etc.

BTT Pi on the other hand is CB1 hardware but actually comes in Pi format
with the CB1 hardware embedded on the boards directly. BTT Pi wires up
the USB ports to their respective ports on SoC and thus the separate DTS
(Also ofc the extra stuff like IR and fan port which will be enabled in
the future)

Cheers,
Martin
> Cheers,
> Andre
>

2023-08-03 15:52:36

by Andre Przywara

[permalink] [raw]
Subject: Re: [PATCH v1 6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support

On Thu, 3 Aug 2023 16:30:06 +0200
Krzysztof Kozlowski <[email protected]> wrote:

> On 03/08/2023 00:02, Martin Botka wrote:
> > The BigTreeTech Pi is an H616 based board based on CB1.
> > Just in Rpi format board.
> >
> > It features the same internals as BTT CB1 but adds:
> > - Fan port
> > - IR receiver
> > - 24V DC power supply via terminal plugs
> > - USB to CAN module connector (The actual USB to CAN happens on the external module)
> >
> > List of currently working things is the same as BTT CB1.
> >
> > Signed-off-by: Martin Botka <[email protected]>
> > ---
> > .../allwinner/sun50i-h616-bigtreetech-pi.dts | 44 +++++++++++++++++++
> > 1 file changed, 44 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> > new file mode 100644
> > index 000000000000..05f39b3606ba
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> > @@ -0,0 +1,44 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
> > +/*
> > + * Copyright (C) 2023 Martin Botka <[email protected]>.
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "sun50i-h616-bigtreetech-cb1.dtsi"
>
> If this is using CB1 DTSI, does it mean it uses CB1 SoM? If so, I think
> this should be reflected in the compatibles.
>
> It's a bit confusing because in previous patch you call it "CB1 board"
> but then with name "Manta"... So what is CB1?

That's indeed a bit confusing, but from what I got from the BTT webpage:
"CB1" is the SoM. M8P (and its M4P/M5P siblings) are carrier boards with
extra hardware for 3D printer support, taking the CB1 SoM.
The "Bigtreetech BTT Pi" is embedding the same hardware as the SoM, but
without actually using the SoM, directly on a PCB, so similar to what we
have with the Pine64 SoPine and the Pine64 LTS board. It doesn't come with
the extra goodies of the more 3D printer related boards.

I *think* the "BIGTREETECH PI4B Adapter" is a normal dev board using the
actual SoM, but with an otherwise identical(?) functionality software wise
- so it can run with the same DTB. I wonder if we should have a separate
.dts for this, though, since I believe it's not really identical in every
aspect - starting with the USB ports, for instance.

But for this board and patch here I think it's fine to include the
cb1.dtsi, but not using the CB1 name in the compatibles list.

Cheers,
Andre

2023-08-03 16:49:29

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v1 6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support

On 03/08/2023 00:02, Martin Botka wrote:
> The BigTreeTech Pi is an H616 based board based on CB1.
> Just in Rpi format board.
>
> It features the same internals as BTT CB1 but adds:
> - Fan port
> - IR receiver
> - 24V DC power supply via terminal plugs
> - USB to CAN module connector (The actual USB to CAN happens on the external module)
>
> List of currently working things is the same as BTT CB1.
>
> Signed-off-by: Martin Botka <[email protected]>
> ---
> .../allwinner/sun50i-h616-bigtreetech-pi.dts | 44 +++++++++++++++++++
> 1 file changed, 44 insertions(+)
> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> new file mode 100644
> index 000000000000..05f39b3606ba
> --- /dev/null
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
> @@ -0,0 +1,44 @@
> +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
> +/*
> + * Copyright (C) 2023 Martin Botka <[email protected]>.
> + */
> +
> +/dts-v1/;
> +
> +#include "sun50i-h616-bigtreetech-cb1.dtsi"

If this is using CB1 DTSI, does it mean it uses CB1 SoM? If so, I think
this should be reflected in the compatibles.

It's a bit confusing because in previous patch you call it "CB1 board"
but then with name "Manta"... So what is CB1?

Best regards,
Krzysztof


2023-08-03 16:56:22

by Martin Botka

[permalink] [raw]
Subject: Re: [PATCH v1 6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support



On 8/3/23 2:39 PM, Andre Przywara wrote:
> On Thu, 3 Aug 2023 00:02:39 +0200
> Martin Botka <[email protected]> wrote:
>
> Hi,
>
>> The BigTreeTech Pi is an H616 based board based on CB1.
>> Just in Rpi format board.
>>
>> It features the same internals as BTT CB1 but adds:
>> - Fan port
>> - IR receiver
>
> You would then need to enable the "ir" node, check the X96 Mate .dts.
Got it.
>
> And I think this "ADXL345 SPI" connector justifies enabling the respective
> SPI node.
Yea the accelerator. Sadly this is bit hard to actually test fully if
not wired up to a printer. Tho i do have a spare board to serve as fake
printer. Klipper will not know any better :)
>
>> - 24V DC power supply via terminal plugs
>> - USB to CAN module connector (The actual USB to CAN happens on the external module)
>
> Still confused how this works. So you would need to connect an USB->CAN
> adapter to one of the USB ports, but how do you feed the CAN signal back
> to the board? Or if this is done via this port, where does it go then? To
> the GPIO header?
OK so its not great but an USB port is also connected to 2x2 pin
connector and secondary 2x2 pin connector slightly away. The USB to CAN
module plugs into these 2x2 pin connectors where one serves as USB and
the other one receives the CAN signal from the module and just wires it
up to an XH2.54 3 pin connector with CAN+ CAN- and GND.
>
>> List of currently working things is the same as BTT CB1.
>>
>> Signed-off-by: Martin Botka <[email protected]>
>> ---
>> .../allwinner/sun50i-h616-bigtreetech-pi.dts | 44 +++++++++++++++++++
>
> Please wire this up in the Makefile as well, otherwise we will miss out on
> the build testing and DTB checking.
YEP very much my bad on that one. Didnt add the file during git add :)
>
>> 1 file changed, 44 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>>
>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>> new file mode 100644
>> index 000000000000..05f39b3606ba
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
>> @@ -0,0 +1,44 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
>> +/*
>> + * Copyright (C) 2023 Martin Botka <[email protected]>.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "sun50i-h616-bigtreetech-cb1.dtsi"
>> +
>> +/ {
>> + compatible = "bigtreetech,pi", "allwinner,sun50i-h616";
>> +};
>> +
>> +&ehci0 {
>> + status = "okay";
>> +};
>> +
>> +&ohci0 {
>> + status = "okay";
>> +};
>> +
>> +&ehci1 {
>> + status = "okay";
>> +};
>> +
>> +&ohci1 {
>> + status = "okay";
>> +};
>> +
>> +&ehci2 {
>> + status = "okay";
>> +};
>> +
>> +&ohci2 {
>> + status = "okay";
>> +};
>> +
>> +&ehci3 {
>> + status = "okay";
>> +};
>> +
>> +&ohci3 {
>> + status = "okay";
>> +};
>
> Oh wow, it really connects all four USB ports directly to the SoC? Nice.
It indeed does :)
> Do you have access to the schematic to check what the power supply
> situation is? Are all ports hardwired to a fixed 5V source?
Correct just fixed 5V. Tho with the changes needed in CB1 DTSI file no
change will be necessary here for this :)
>
> And you would of course need to adjust this file according to the
> changes requested in the previous patch, so that you have the UART,
> stdout-path and other moved nodes in here.
Got it will do.

Cheers,
Martin
>
> Cheers,
> Andre
>