[PATCH v16 09/16] riscv: Update Canaan Kendryte K210 device tree
Damien Le Moal
Damien.LeMoal at wdc.com
Mon Feb 8 17:55:35 EST 2021
On 2021/02/09 7:53, Sean Anderson wrote:
> On 2/8/21 3:00 PM, Rob Herring wrote:
>> On Fri, Feb 5, 2021 at 6:13 PM Damien Le Moal <Damien.LeMoal at wdc.com> wrote:
>>>
>>> On Fri, 2021-02-05 at 14:25 -0600, Rob Herring wrote:
>>> [...]
>>>>> + otp0: nvmem at 50420000 {
>>>>> + #address-cells = <1>;
>>>>> + #size-cells = <1>;
>>>>> + compatible = "canaan,k210-otp";
>>>>> + reg = <0x50420000 0x100>,
>>>>> + <0x88000000 0x20000>;
>>>>> + reg-names = "reg", "mem";
>>>>> + clocks = <&sysclk K210_CLK_ROM>;
>>>>> + resets = <&sysrst K210_RST_ROM>;
>>>>> + read-only;
>>>>> + status = "disabled";
>>>>
>>>> Your disabled nodes seem a bit excessive. A device should really only be
>>>> disabled if it's a board level decision to use or not. I'd assume the
>>>> OTP is always there and usable.
>>>
>>> Please see below.
>>>
>>>>
>>>>> +
>>>>> + /* Bootloader */
>>>>> + firmware at 00000 {
>>>>
>>>> Drop leading 0s.
>>>>
>>>> Is this memory mapped? If so, you are missing 'ranges' in the parent to
>>>> make it translateable.
>>>>
>>>>> + reg = <0x00000 0xC200>;
>>>>> + };
>>>>> +
>>>>> + /*
>>>>> + * config string as described in RISC-V
>>>>> + * privileged spec 1.9
>>>>> + */
>>>>> + config-1-9 at 1c000 {
>>>>> + reg = <0x1C000 0x1000>;
>>>>> + };
>>>>> +
>>>>> + /*
>>>>> + * Device tree containing only registers,
>>>>> + * interrupts, and cpus
>>>>> + */
>>>>> + fdt at 1d000 {
>>>>> + reg = <0x1D000 0x2000>;
>>>>> + };
>>>>> +
>>>>> + /* CPU/ROM credits */
>>>>> + credits at 1f000 {
>>>>> + reg = <0x1F000 0x1000>;
>>>>> + };
>>>>> + };
>>>>> +
>>>>> + dvp0: camera at 50430000 {
>>>>> + compatible = "canaan,k210-dvp";
>>>>
>>>> No documented. Seems to be several of them.
>>>
>>> There are no Linux drivers for these undocumented nodes. That is why I did not
>>> add any documentation.
>>
>> Documentation is required when dts files OR Linux drivers use them.
>>
>>> make dtbs_check does not complain about that as long as
>>> the nodes are marked disabled.
>>
>> 'disabled' should only turn off required properties missing checks.
>> Undocumented compatible strings checks are about to get turned on now
>> that I've made it work without false positives.
>>
>>> I kept these nodes to have the DTS in sync with
>>> U-Boot which has them.
>>
>> That's a worthwhile goal. Doesn't u-boot require documenting bindings?
>
> Generally, no. Usually if the bindings differ from the kernel they are
> documented, but usually the device trees are just imported straight from
> the kernel. This is a bit of an unusual case in that the device tree is
> being imported from U-Boot instead of the other way around.
>
>>
>>> Keeping them also creates documentation for the SoC
>>> since this device tree is more detailed than the SoC specsheet...
>>
>> It's already 'documented' in u-boot it seems...
>
> I would like to keep Kernel and U-Boot device trees in-sync. However, if
> there are significant divergences, that becomes more difficult.
Sean,
Are you OK with removing the nodes without a driver ? I think they are the same
for the kernel and U-Boot but I have not checked in detail.
>
> --Sean
>
>>
>> Rob
>>
>
>
--
Damien Le Moal
Western Digital Research
More information about the linux-riscv
mailing list