[PATCH v3 11/12] riscv: Add device tree for K210

Bin Meng bmeng.cn at gmail.com
Tue Feb 4 15:40:21 CET 2020


Hi Sean,

On Tue, Feb 4, 2020 at 10:23 PM Sean Anderson <seanga2 at gmail.com> wrote:
>
> On 2/4/20 6:32 AM, Bin Meng wrote:
> > Hi Sean,
> >
> > On Mon, Feb 3, 2020 at 4:10 AM Sean Anderson <seanga2 at gmail.com> wrote:
> >>
> >> Where possible, I have tried to find compatible drivers based on the layout of
> >> registers. However, I have not tested most of this functionality, and most
> >> devices should be considered descriptive at best. I would appreciate if anyone
> >> could help identify possibly compatible devices, especially for the timers
> >> and rtc.
> >>
> >> Should the size of a reg be the size of the documented registers, or the size
> >> of the address space which will be routed to that device?
> >
> > Perhaps we need use the size of the address space routed to that
> > device, in case there is some undocumented registers we need handle.
>
> Ok, I'll go with the whole address space then.
>
> >> diff --git a/arch/riscv/dts/k210.dtsi b/arch/riscv/dts/k210.dtsi
> >> new file mode 100644
> >> index 0000000000..cc46b692e6
> >> --- /dev/null
> >> +++ b/arch/riscv/dts/k210.dtsi
> >> @@ -0,0 +1,496 @@
> >> +// SPDX-License-Identifier: GPL-2.0+
> >> +/*
> >> + * Copyright (C) 2019 Sean Anderson <seanga2 at gmail.com>
> >> + */
> >> +
> >> +#include <dt-bindings/clock/k210-sysctl.h>
> >> +#include <dt-bindings/mfd/k210-sysctl.h>
> >> +#include <dt-bindings/reset/k210-sysctl.h>
> >> +
> >> +/ {
> >> +       /*
> >> +        * Although the K210 is a 64-bit CPU, the address bus is only 32-bits
> >> +        * wide, and the upper half of all addresses is ignored.
> >> +        */
> >> +       #address-cells = <1>;
> >> +       #size-cells = <1>;
> >> +       compatible = "kendryte,k210";
> >> +
> >> +       aliases {
> >> +               serial0 = &uarths0;
> >> +               serial1 = &uart1;
> >> +               serial2 = &uart2;
> >> +               serial3 = &uart3;
> >> +               spi0 = &spi0;
> >> +               spi1 = &spi1;
> >> +               spi2 = &spi2;
> >> +               spi3 = &spi3;
> >> +       };
> >> +
> >> +       clocks {
> >> +               in0: oscillator {
> >> +                       compatible = "fixed-clock";
> >> +                       #clock-cells = <0>;
> >> +                       clock-frequency = <26000000>;
> >> +               };
> >> +       };
> >> +
> >> +       cpus {
> >> +               #address-cells = <1>;
> >> +               #size-cells = <0>;
> >> +               timebase-frequency = <7800000>;
> >> +               cpu0: cpu at 0 {
> >> +                       device_type = "cpu";
> >> +                       reg = <0>;
> >> +                       compatible = "riscv";
> >> +                       riscv,isa = "rv64acdfimsu";
> >> +                       mmu-type = "sv39";
> >> +                       i-cache-size = <0x8000>;
> >> +                       d-cache-size = <0x8000>;
> >> +                       clocks = <&sysclk K210_CLK_CPU>;
> >> +                       clock-frequency = <390000000>;
> >
> > I wonder there is already clocks property, why do we have another
> > clock-frequency property to provide duplicated information?
>
> This is for compatibility with the existing riscv cpu driver. There is a
> patch [1] to move the driver over to using clocks, but I think you
> already expressed that it should be merged into this series (not as a
> separate series).

Yes, so with that 2 patches in this same series, we no longer need
clock-frequency.

>
> [1] https://patchwork.ozlabs.org/project/uboot/list/?series=156381

Regards,
Bin


More information about the U-Boot mailing list