RE: [PATCH v2 7/9] riscv: dts: add initial support for the SiFive FU740-C000 SoC

From: Yash Shah
Date: Wed Dec 16 2020 - 00:25:38 EST


> -----Original Message-----
> From: Bin Meng <bmeng.cn@xxxxxxxxx>
> Sent: 10 December 2020 19:05
> To: Yash Shah <yash.shah@xxxxxxxxxxxx>
> Cc: linux-spi@xxxxxxxxxxxxxxx; linux-serial@xxxxxxxxxxxxxxx; linux-
> pwm@xxxxxxxxxxxxxxx; linux-i2c@xxxxxxxxxxxxxxx; linux-kernel <linux-
> kernel@xxxxxxxxxxxxxxx>; linux-riscv <linux-riscv@xxxxxxxxxxxxxxxxxxx>;
> devicetree <devicetree@xxxxxxxxxxxxxxx>; open list:GPIO SUBSYSTEM <linux-
> gpio@xxxxxxxxxxxxxxx>; broonie@xxxxxxxxxx; Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx>; Albert Ou <aou@xxxxxxxxxxxxxxxxx>;
> lee.jones@xxxxxxxxxx; u.kleine-koenig@xxxxxxxxxxxxxx; Thierry Reding
> <thierry.reding@xxxxxxxxx>; andrew@xxxxxxx; Peter Korsgaard
> <peter@xxxxxxxxxxxxx>; Paul Walmsley ( Sifive)
> <paul.walmsley@xxxxxxxxxx>; Palmer Dabbelt <palmer@xxxxxxxxxxx>; Rob
> Herring <robh+dt@xxxxxxxxxx>; Bartosz Golaszewski
> <bgolaszewski@xxxxxxxxxxxx>; Linus Walleij <linus.walleij@xxxxxxxxxx>
> Subject: Re: [PATCH v2 7/9] riscv: dts: add initial support for the SiFive FU740-
> C000 SoC
>
> [External Email] Do not click links or attachments unless you recognize the
> sender and know the content is safe
>
> On Tue, Dec 8, 2020 at 3:06 PM Yash Shah <yash.shah@xxxxxxxxxx> wrote:
> >
> > Add initial support for the SiFive FU540-C000 SoC. FU740-C000 is built
>
> FU740-C000 Soc
>
> > around the SiFIve U7 Core Complex and a TileLink interconnect.
> >
> > This file is expected to grow as more device drivers are added to the
> > kernel.
> >
> > Signed-off-by: Yash Shah <yash.shah@xxxxxxxxxx>
> > ---
> > arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 293
> > +++++++++++++++++++++++++++++
> > 1 file changed, 293 insertions(+)
> > create mode 100644 arch/riscv/boot/dts/sifive/fu740-c000.dtsi
> >
> > diff --git a/arch/riscv/boot/dts/sifive/fu740-c000.dtsi
> > b/arch/riscv/boot/dts/sifive/fu740-c000.dtsi
> > new file mode 100644
> > index 0000000..eeb4f8c3
> > --- /dev/null
> > +++ b/arch/riscv/boot/dts/sifive/fu740-c000.dtsi
> > @@ -0,0 +1,293 @@

...

> > + plic0: interrupt-controller@c000000 {
> > + #interrupt-cells = <1>;
> > + #address-cells = <0>;
> > + compatible = "sifive,fu540-c000-plic",
> > + "sifive,plic-1.0.0";
>
> I don't see bindings updated for FU740 PLIC, like "sifive,fu740-c000-plic"?

That's because it is not required. There won't be any difference in driver code for FU740 plic.

...

> > + eth0: ethernet@10090000 {
> > + compatible = "sifive,fu540-c000-gem";
>
> "sifive,fu740-c000-gem"?
>

Same reason as above.

Thanks for your review.

- Yash

> > + interrupt-parent = <&plic0>;
> > + interrupts = <55>;
> > + reg = <0x0 0x10090000 0x0 0x2000>,
> > + <0x0 0x100a0000 0x0 0x1000>;
> > + local-mac-address = [00 00 00 00 00 00];
> > + clock-names = "pclk", "hclk";
> > + clocks = <&prci PRCI_CLK_GEMGXLPLL>,
> > + <&prci PRCI_CLK_GEMGXLPLL>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + status = "disabled";
> > + };
> > + pwm0: pwm@10020000 {
> > + compatible = "sifive,fu740-c000-pwm", "sifive,pwm0";
> > + reg = <0x0 0x10020000 0x0 0x1000>;
> > + interrupt-parent = <&plic0>;
> > + interrupts = <44>, <45>, <46>, <47>;
> > + clocks = <&prci PRCI_CLK_PCLK>;
> > + #pwm-cells = <3>;
> > + status = "disabled";
> > + };
> > + pwm1: pwm@10021000 {
> > + compatible = "sifive,fu740-c000-pwm", "sifive,pwm0";
> > + reg = <0x0 0x10021000 0x0 0x1000>;
> > + interrupt-parent = <&plic0>;
> > + interrupts = <48>, <49>, <50>, <51>;
> > + clocks = <&prci PRCI_CLK_PCLK>;
> > + #pwm-cells = <3>;
> > + status = "disabled";
> > + };
> > + ccache: cache-controller@2010000 {
> > + compatible = "sifive,fu740-c000-ccache", "cache";
> > + cache-block-size = <64>;
> > + cache-level = <2>;
> > + cache-sets = <2048>;
> > + cache-size = <2097152>;
> > + cache-unified;
> > + interrupt-parent = <&plic0>;
> > + interrupts = <19 20 21 22>;
> > + reg = <0x0 0x2010000 0x0 0x1000>;
> > + };
> > + gpio: gpio@10060000 {
> > + compatible = "sifive,fu740-c000-gpio", "sifive,gpio0";
> > + interrupt-parent = <&plic0>;
> > + interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>,
> > + <30>, <31>, <32>, <33>, <34>, <35>, <36>,
> > + <37>, <38>;
> > + reg = <0x0 0x10060000 0x0 0x1000>;
> > + gpio-controller;
> > + #gpio-cells = <2>;
> > + interrupt-controller;
> > + #interrupt-cells = <2>;
> > + clocks = <&prci PRCI_CLK_PCLK>;
> > + status = "disabled";
> > + };
> > + };
> > +};
>
> Regards,
> Bin