[v1,6/6] arm64: dts: allwinner: h616: Add BigTreeTech Pi support

Message ID DFE9B2F1349F69AE+20230802220309.163804-7-martin@biqu3d.com
State New
Headers
Series [v1,1/6] dt-bindings: vendor-prefixes: Add BigTreeTech |

Commit Message

Martin Botka Aug. 2, 2023, 10:02 p.m. UTC
  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 <martin@biqu3d.com>
---
 .../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
  

Comments

Andre Przywara Aug. 3, 2023, 12:39 p.m. UTC | #1
On Thu,  3 Aug 2023 00:02:39 +0200
Martin Botka <martin@biqu3d.com> 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 <martin@biqu3d.com>
> ---
>  .../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 <martin@biqu3d.com>.
> + */
> +
> +/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
  
Krzysztof Kozlowski Aug. 3, 2023, 2:30 p.m. UTC | #2
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 <martin@biqu3d.com>
> ---
>  .../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 <martin@biqu3d.com>.
> + */
> +
> +/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
  
Andre Przywara Aug. 3, 2023, 2:49 p.m. UTC | #3
On Thu, 3 Aug 2023 16:30:06 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 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 <martin@biqu3d.com>
> > ---
> >  .../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 <martin@biqu3d.com>.
> > + */
> > +
> > +/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
  
Martin Botka Aug. 3, 2023, 2:54 p.m. UTC | #4
On 8/3/23 4:49 PM, Andre Przywara wrote:
> On Thu, 3 Aug 2023 16:30:06 +0200
> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 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 <martin@biqu3d.com>
>>> ---
>>>   .../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 <martin@biqu3d.com>.
>>> + */
>>> +
>>> +/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
>
  
Martin Botka Aug. 3, 2023, 3:45 p.m. UTC | #5
On 8/3/23 2:39 PM, Andre Przywara wrote:
> On Thu,  3 Aug 2023 00:02:39 +0200
> Martin Botka <martin@biqu3d.com> 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 <martin@biqu3d.com>
>> ---
>>   .../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 <martin@biqu3d.com>.
>> + */
>> +
>> +/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
>
  

Patch

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 <martin@biqu3d.com>.
+ */
+
+/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";
+};