[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