On 2/4/20 6:32 AM, Bin Meng wrote: > Hi Sean, > > On Mon, Feb 3, 2020 at 4:10 AM Sean Anderson <sean...@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 <sean...@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@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