[PATCH v3 11/12] riscv: Add device tree for K210
Sean Anderson
seanga2 at gmail.com
Tue Feb 4 15:23:32 CET 2020
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).
[1] https://patchwork.ozlabs.org/project/uboot/list/?series=156381
--Sean
More information about the U-Boot
mailing list