2021-07-09 20:17:45

by Drew Fustini

[permalink] [raw]
Subject: [PATCH v3] dt-bindings: riscv: add starfive jh7100 bindings

Add DT binding documentation for the StarFive JH7100 Soc [1] and the
BeagleV Starlight JH7100 board [2].

[1] https://github.com/starfive-tech/beaglev_doc
[2] https://github.com/beagleboard/beaglev-starlight

Signed-off-by: Drew Fustini <[email protected]>
---
v3 changes:
- added revision number for the board and soc after question from Palmer

v2 changes:
- removed "items:" entry that only had "const: starfive,jh7100"
- correct typo in Description:

Results of running checks:
$ make -j8 ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- dt_binding_check \
DT_SCHEMA_FILES=Documentation/devicetree/bindings/riscv/starfive.yaml
CHKDT Documentation/devicetree/bindings/processed-schema-examples.json
DTEX Documentation/devicetree/bindings/riscv/starfive.example.dts
SCHEMA Documentation/devicetree/bindings/processed-schema-examples.json
DTC Documentation/devicetree/bindings/riscv/starfive.example.dt.yaml
CHECK Documentation/devicetree/bindings/riscv/starfive.example.dt.yaml
$ make -j8 ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- dtbs_check \
DT_SCHEMA_FILES=Documentation/devicetree/bindings/riscv/starfive.yaml
SYNC include/config/auto.conf.cmd
UPD include/config/kernel.release
SCHEMA Documentation/devicetree/bindings/processed-schema.json
DTC arch/riscv/boot/dts/starfive/jh7100-beaglev-starlight.dtb
DTC arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dt.yaml
DTC arch/riscv/boot/dts/starfive/jh7100-beaglev-starlight.dt.yaml
DTC arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dt.yaml
CHECK arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dt.yaml
CHECK arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dt.yaml
CHECK arch/riscv/boot/dts/starfive/jh7100-beaglev-starlight.dt.yaml

The dts file is from vendor repo and is being cleaned up right now in
preperation for submitting to the mailing list:
https://github.com/starfive-tech/linux/tree/beaglev/arch/riscv/boot/dts/starfive

.../devicetree/bindings/riscv/starfive.yaml | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
create mode 100644 Documentation/devicetree/bindings/riscv/starfive.yaml

diff --git a/Documentation/devicetree/bindings/riscv/starfive.yaml b/Documentation/devicetree/bindings/riscv/starfive.yaml
new file mode 100644
index 000000000000..18d510904441
--- /dev/null
+++ b/Documentation/devicetree/bindings/riscv/starfive.yaml
@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/riscv/starfive.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive SoC-based boards
+
+maintainers:
+ - Michael Zhu <[email protected]>
+ - Drew Fustini <[email protected]>
+
+description:
+ StarFive SoC-based boards
+
+properties:
+ $nodename:
+ const: '/'
+ compatible:
+ oneOf:
+ - items:
+ - const: beagle,beaglev-starlight-jh7100-r0
+ - const: starfive,jh7100-r0
+
+additionalProperties: true
+
+...
--
2.27.0


2021-07-12 11:26:05

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH v3] dt-bindings: riscv: add starfive jh7100 bindings

Hi Drew,

On Fri, Jul 9, 2021 at 10:17 PM Drew Fustini <[email protected]> wrote:
> Add DT binding documentation for the StarFive JH7100 Soc [1] and the
> BeagleV Starlight JH7100 board [2].
>
> [1] https://github.com/starfive-tech/beaglev_doc
> [2] https://github.com/beagleboard/beaglev-starlight
>
> Signed-off-by: Drew Fustini <[email protected]>
> ---
> v3 changes:
> - added revision number for the board and soc after question from Palmer

Thanks for the update!

> --- /dev/null
> +++ b/Documentation/devicetree/bindings/riscv/starfive.yaml
> @@ -0,0 +1,27 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/riscv/starfive.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: StarFive SoC-based boards
> +
> +maintainers:
> + - Michael Zhu <[email protected]>
> + - Drew Fustini <[email protected]>
> +
> +description:
> + StarFive SoC-based boards
> +
> +properties:
> + $nodename:
> + const: '/'
> + compatible:
> + oneOf:
> + - items:
> + - const: beagle,beaglev-starlight-jh7100-r0
> + - const: starfive,jh7100-r0

While I can be convinced about the board revision number (probably you
know better if there will be different board revisions that matter),
I'm wondering if the revision number makes sense for the SoC part.
Will there be a new revision of jh7100, or will the next revision
be jh7110, which will use a different compatible value anyway?
Is there an on-chip register that allows the kernel to find out the
revision info? Might be better to use that with soc_device_register()
and soc_device_match().

> +
> +additionalProperties: true
> +
> +...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2021-07-13 06:04:51

by Drew Fustini

[permalink] [raw]
Subject: Re: [PATCH v3] dt-bindings: riscv: add starfive jh7100 bindings

On Mon, Jul 12, 2021 at 01:24:19PM +0200, Geert Uytterhoeven wrote:
> Hi Drew,
>
> On Fri, Jul 9, 2021 at 10:17 PM Drew Fustini <[email protected]> wrote:
> > Add DT binding documentation for the StarFive JH7100 Soc [1] and the
> > BeagleV Starlight JH7100 board [2].
> >
> > [1] https://github.com/starfive-tech/beaglev_doc
> > [2] https://github.com/beagleboard/beaglev-starlight
> >
> > Signed-off-by: Drew Fustini <[email protected]>
> > ---
> > v3 changes:
> > - added revision number for the board and soc after question from Palmer
>
> Thanks for the update!
>
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/riscv/starfive.yaml
> > @@ -0,0 +1,27 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/riscv/starfive.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: StarFive SoC-based boards
> > +
> > +maintainers:
> > + - Michael Zhu <[email protected]>
> > + - Drew Fustini <[email protected]>
> > +
> > +description:
> > + StarFive SoC-based boards
> > +
> > +properties:
> > + $nodename:
> > + const: '/'
> > + compatible:
> > + oneOf:
> > + - items:
> > + - const: beagle,beaglev-starlight-jh7100-r0
> > + - const: starfive,jh7100-r0
>
> While I can be convinced about the board revision number (probably you
> know better if there will be different board revisions that matter),
> I'm wondering if the revision number makes sense for the SoC part.
> Will there be a new revision of jh7100, or will the next revision
> be jh7110, which will use a different compatible value anyway?
> Is there an on-chip register that allows the kernel to find out the
> revision info? Might be better to use that with soc_device_register()
> and soc_device_match()

We do anticipate making additional BeagleV Starlight boards with the
JH7100 SoC and those new boards may need to have a different USB hub
chip due to sourcing. Thus it is possible that there will be a r1 board
in the future.

However, I think you are correct about the SoC. There won't be any new
revisions of the JH7100 SoC. All chips with that part number will have
the same design. There will eventually be JH7110 which is a different
design but I did not want to prematurely add a compatible for that.


Thanks,
Drew