[PATCH v11 03/10] riscv: Update Canaan Kendryte K210 device tree
Sean Anderson
seanga2 at gmail.com
Thu Jan 14 19:06:49 EST 2021
On 1/14/21 7:01 PM, Sean Anderson wrote:
>
> On 1/14/21 6:32 PM, Palmer Dabbelt wrote:
>> On Mon, 11 Jan 2021 16:58:41 PST (-0800), Damien Le Moal wrote:
>>> Update the Canaan Kendryte K210 base device tree k210.dtsi to define
>>> all peripherals of the SoC, their clocks and reset lines. The device
>>> tree file k210.dts is renamed to k210_generic.dts and becomes the
>>> default value selection of the SOC_CANAAN_K210_DTB_BUILTIN_SOURCE
>>> configuration option. No device beside the serial console is defined by
>>> this device tree. This makes this generic device tree suitable for use
>>> with a builtin initramfs with all known K210 based boards.
>>>
>>> These changes result in the K210_CLK_ACLK clock ID to be unused and
>>> removed from the dt-bindings k210-clk.h header file.
>>>
>>> Most updates to the k210.dtsi file come from Sean Anderson's work on
>>> U-Boot support for the K210.
>>>
>>> Signed-off-by: Damien Le Moal <damien.lemoal at wdc.com>
>>> Reviewed-by: Anup Patel <anup at brainfault.org>
>>> ---
>>> arch/riscv/Kconfig.socs | 2 +-
>>> arch/riscv/boot/dts/canaan/k210.dts | 23 -
>>> arch/riscv/boot/dts/canaan/k210.dtsi | 551 +++++++++++++++++++-
>>> arch/riscv/boot/dts/canaan/k210_generic.dts | 46 ++
>>> include/dt-bindings/clock/k210-clk.h | 1 -
>>> 5 files changed, 573 insertions(+), 50 deletions(-)
>>> delete mode 100644 arch/riscv/boot/dts/canaan/k210.dts
>>> create mode 100644 arch/riscv/boot/dts/canaan/k210_generic.dts
>>
>> [Snipping this to the relevant bits, in case you missed it before.]
>>
>>> @@ -81,40 +107,515 @@ in0: oscillator {
>>> soc {
>>> #address-cells = <1>;
>>> #size-cells = <1>;
>>> - compatible = "kendryte,k210-soc", "simple-bus";
>>> + compatible = "canaan,k210-soc", "simple-bus";
>>> ranges;
>>> interrupt-parent = <&plic0>;
>>>
>>> - sysctl: sysctl at 50440000 {
>>> - compatible = "kendryte,k210-sysctl", "simple-mfd";
>>> - reg = <0x50440000 0x1000>;
>>> - #clock-cells = <1>;
>>> + debug0: debug at 0 {
>>> + compatible = "canaan,k210-debug", "riscv,debug";
>>
>> I'm still getting lots of warnings about undocumented DT compatible strings
>> from checpatch. Some of them might be in flight, but I don't see many of them
>> (including both of these debug ones) having been defined anywhere. We went
>> through a whole process to sort out the SiFive DT naming conventions, I don't
>> want to just circumvent that for the Canaan stuff by merging it as-is.
>
> As far as I'm aware, it's recommended practice to add device-specific compatible
>
Here it's because "riscv,debug" doesn't exist. This is the "debug"
device as described in the debug spec. AFAIK Linux never needs to
configure this device. It could probably be removed.
I am going to try and go through the list of nonexistant compatibles and
see if there are any other devices like this (nothing else like it in
Linux).
--Sean
More information about the linux-riscv
mailing list