On 01/07/2024 13:31, Jacobe Zang wrote: >>>> + pcie@0,0 { >>>> + reg = <0x400000 0 0 0 0>; >>>> + #address-cells = <3>; >>>> + #size-cells = <2>; >>>> + ranges; >>>> + device_type = "pci"; >>>> + bus-range = <0x40 0x4f>; >>>> + >>>> + wifi: wifi@0,0 { >>> Where is the compatible (again!)? Test your code - you will see your >>> binding is a no-op. >> >> I tried to build kernel with CHECK_DTBS=1. And didn't get any message >> like 'compatible' is a required property in wifi node. But when I check >> the bindings that do required the compatible... So I will add it next time. > >> Yep, use different clock name and then test. You should see errors, >> right? But there are not, because schema is not applied to this node at all. >> >> Look how Apple is doing this. >> >> I have doubts that your code works at all in the first place. If there >> is no compatible, how your platform device gets of_node? > > In file brcm_hw_ids.h and pcie.c has added Device ID and Vendor ID > for bus to enumerate the device when board bootup, so I didn't add > specific compatible in DTS. And by doing so, it can probe successfully. I did not ask about probe()... that's quite obvious. How the device's of_node is assigned? Best regards, Krzysztof