[PATCH v4 8/8] riscv: dts: microchip: add the sundance polarberry

Conor.Dooley at microchip.com Conor.Dooley at microchip.com
Mon May 9 06:23:36 PDT 2022


On 09/05/2022 14:07, Heiko Stübner wrote:
> Am Montag, 9. Mai 2022, 13:24:12 CEST schrieb Conor.Dooley at microchip.com:
>> On 09/05/2022 12:10, Heiko Stübner wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>
>>> Am Mittwoch, 4. Mai 2022, 22:30:52 CEST schrieb Conor Dooley:
>>>> From: Conor Dooley <conor.dooley at microchip.com>
>>>>
>>>> Add a minimal device tree for the PolarFire SoC based Sundance
>>>> PolarBerry.
>>>>
>>>> Signed-off-by: Conor Dooley <conor.dooley at microchip.com>
>>>> ---
>>>>    arch/riscv/boot/dts/microchip/Makefile        |  1 +
>>>>    .../dts/microchip/mpfs-polarberry-fabric.dtsi | 16 +++
>>>>    .../boot/dts/microchip/mpfs-polarberry.dts    | 97 +++++++++++++++++++
>>>>    3 files changed, 114 insertions(+)
>>>>    create mode 100644 arch/riscv/boot/dts/microchip/mpfs-polarberry-fabric.dtsi
>>>>    create mode 100644 arch/riscv/boot/dts/microchip/mpfs-polarberry.dts
>>>>
>>>> diff --git a/arch/riscv/boot/dts/microchip/Makefile b/arch/riscv/boot/dts/microchip/Makefile
>>>> index af3a5059b350..39aae7b04f1c 100644
>>>> --- a/arch/riscv/boot/dts/microchip/Makefile
>>>> +++ b/arch/riscv/boot/dts/microchip/Makefile
>>>> @@ -1,3 +1,4 @@
>>>>    # SPDX-License-Identifier: GPL-2.0
>>>>    dtb-$(CONFIG_SOC_MICROCHIP_POLARFIRE) += mpfs-icicle-kit.dtb
>>>> +dtb-$(CONFIG_SOC_MICROCHIP_POLARFIRE) += mpfs-polarberry.dtb
>>>>    obj-$(CONFIG_BUILTIN_DTB) += $(addsuffix .o, $(dtb-y))
>>>> diff --git a/arch/riscv/boot/dts/microchip/mpfs-polarberry-fabric.dtsi b/arch/riscv/boot/dts/microchip/mpfs-polarberry-fabric.dtsi
>>>> new file mode 100644
>>>> index 000000000000..49380c428ec9
>>>> --- /dev/null
>>>> +++ b/arch/riscv/boot/dts/microchip/mpfs-polarberry-fabric.dtsi
>>>> @@ -0,0 +1,16 @@
>>>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>>>> +/* Copyright (c) 2020-2022 Microchip Technology Inc */
>>>> +
>>>> +/ {
>>>> +     fabric_clk3: fabric-clk3 {
>>>> +             compatible = "fixed-clock";
>>>> +             #clock-cells = <0>;
>>>> +             clock-frequency = <62500000>;
>>>> +     };
>>>> +
>>>> +     fabric_clk1: fabric-clk1 {
>>>> +             compatible = "fixed-clock";
>>>> +             #clock-cells = <0>;
>>>> +             clock-frequency = <125000000>;
>>>> +     };
>>>> +};
>>>> diff --git a/arch/riscv/boot/dts/microchip/mpfs-polarberry.dts b/arch/riscv/boot/dts/microchip/mpfs-polarberry.dts
>>>> new file mode 100644
>>>> index 000000000000..1cad5b0d42e1
>>>> --- /dev/null
>>>> +++ b/arch/riscv/boot/dts/microchip/mpfs-polarberry.dts
>>>> @@ -0,0 +1,97 @@
>>>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>>>> +/* Copyright (c) 2020-2022 Microchip Technology Inc */
>>>> +
>>>> +/dts-v1/;
>>>> +
>>>> +#include "mpfs.dtsi"
>>>> +#include "mpfs-polarberry-fabric.dtsi"
>>>> +
>>>> +/* Clock frequency (in Hz) of the rtcclk */
>>>> +#define MTIMER_FREQ  1000000
>>>> +
>>>> +/ {
>>>> +     model = "Sundance PolarBerry";
>>>> +     compatible = "sundance,polarberry", "microchip,mpfs";
>>>> +
>>>> +     aliases {
>>>> +             ethernet0 = &mac1;
>>>> +             serial0 = &mmuart0;
>>>> +     };
>>>> +
>>>> +     chosen {
>>>> +             stdout-path = "serial0:115200n8";
>>>> +     };
>>>> +
>>>> +     cpus {
>>>> +             timebase-frequency = <MTIMER_FREQ>;
>>>> +     };
>>>> +
>>>> +     ddrc_cache_lo: memory at 80000000 {
>>>> +             device_type = "memory";
>>>> +             reg = <0x0 0x80000000 0x0 0x2e000000>;
>>>> +     };
>>>> +
>>>> +     ddrc_cache_hi: memory at 1000000000 {
>>>> +             device_type = "memory";
>>>> +             reg = <0x10 0x00000000 0x0 0xC0000000>;
>>>> +     };
>>>> +};
>>>> +
>>>> +/*
>>>> + * phy0 is connected to mac0, but the port itself is on the (optional) carrier
>>>> + * board.
>>>> + */
>>>> +&mac0 {
>>>> +     status = "disabled";
>>>> +     phy-mode = "sgmii";
>>>> +     phy-handle = <&phy0>;
>>>
>>> nit: it makes it was easier recognizing the status if it's in the
>>> same place all the time (for example as the last property)
>>> like in &mmc below.
>>>
>>> Though that may just be my preference ;-) .
>>> The other option would be to adhere to stricter sorting
>>> because right now status is neither in one place nor sorted.
>>
>> My I had it in my head (and correct me if I am wrong please), that it is
>> okay to sort the phys after the status. It doesn't matter either way to
>> me, but there are plenty of dts that do it this way.
>>
>> I don't care either way, so I am happy to change if those are bad examples
>> to follow!
> 
> I guess which order to follow really is more a matter of taste and I
> don't think there is a definitive rulebook on what belongs where ;-) .
> 
> Though from past experience I do know that it makes reading devicetrees
> easier when you know which property to expect in which place - especially
> when their number increases and right now you have status above here,
> and below everything else in the mmc node for example.
> 
> In the end Palmer might not care that much about tiny odering
> differences, but I do think following one scheme is definitively an
> advantage over mixing different ones.

Aye. I guess I will respin with the statuses at the end. If someone has
a problem, they're always free to raise an objection ;) Really doesn't
matter to me & if it makes reading the dt easier for some...


> 
> 
> Heiko
> 
> 
>>>> +};
>>>> +
>>>> +&mac1 {
>>>> +     status = "okay";
>>>> +     phy-mode = "sgmii";
>>>> +     phy-handle = <&phy1>;
>>>
>>> nit (1): same as above
>>> nit (2): blank line between properties and subnodes makes
>>>     everything more readable.
>>
>> Aye, not wrong. I'll fix this regardless of what happens with
>> the status ordering.
>> Thanks,
>> Conor.
>>
>>>
>>>> +     phy1: ethernet-phy at 5 {
>>>> +             reg = <5>;
>>>> +             ti,fifo-depth = <0x01>;
>>>> +     };
>>>
>>> nit: blank line?
>>>
>>> Otherwise:
>>> Reviewed-by: Heiko Stuebner <heiko at sntech.de>
>>>
>>>> +     phy0: ethernet-phy at 4 {
>>>> +             reg = <4>;
>>>> +             ti,fifo-depth = <0x01>;
>>>> +     };
>>>> +};
>>>> +
>>>> +&mbox {
>>>> +     status = "okay";
>>>> +};
>>>> +
>>>> +&mmc {
>>>> +     bus-width = <4>;
>>>> +     disable-wp;
>>>> +     cap-sd-highspeed;
>>>> +     cap-mmc-highspeed;
>>>> +     card-detect-delay = <200>;
>>>> +     mmc-ddr-1_8v;
>>>> +     mmc-hs200-1_8v;
>>>> +     sd-uhs-sdr12;
>>>> +     sd-uhs-sdr25;
>>>> +     sd-uhs-sdr50;
>>>> +     sd-uhs-sdr104;
>>>> +     status = "okay";
>>>> +};
>>>> +
>>>> +&mmuart0 {
>>>> +     status = "okay";
>>>> +};
>>>> +
>>>> +&refclk {
>>>> +     clock-frequency = <125000000>;
>>>> +};
>>>> +
>>>> +&rtc {
>>>> +     status = "okay";
>>>> +};
>>>> +
>>>> +&syscontroller {
>>>> +     status = "okay";
>>>> +};
>>>>
>>>
>>>
>>>
>>>
>>
>>
> 
> 
> 
> 


More information about the linux-riscv mailing list