[+cc thermal and DT folks] On Thu, Jan 14, 2021 at 06:04:18PM +0100, Waldemar Rymarkiewicz wrote: > Hi, > > I've been looking for a nice way to hook up a PCIe device into the > thermal framework recently and I want to confront my findings with the > right people here. > > I have a PCIe wireless adapter connected to PCI-to-PCI bridge which in > turns is connected to a PCI root complex (RC). I want to define a > thermal zone over the wireless adapter in my system and control it > over DT (thermal-zones{...}) instead of keeping thermal zone > definition statically in the PCI device driver (as it's done in the > iwlwifi wireless driver or the mlxsw ethernet driver for example) > > The issue I have faced is that a PCI device has no DT node > (pci_dev.dev.of_node) which is reasonable as this is by design > discoverable device. This, however, prevents me to register the PCI > device as a thermal sensor (dev.of_node is required by thermal). > > As far as we consider a fixed PCI topology eg. a SoC internal design I > could put something like this in DT (used by ath11k/ath10k btw). > > pci@... { > ... > pci-bridge@... { > ... > wifi:wifi@0 { > reg = <0x0 0 0 0 0>; > #thermal-sensor-cells = <0>; > }; > }; > }; > > but in case we consider an arbitrary location of the device in PCI > topology that DT modification will not work and still I have no device > node. I'm absolutely not a DT expert, but I assume that a thermal zone would be associated with some resource fixed by the platform, such as a fan, so I would think a thermal zone would have to be described in terms of the platform physical topology, not the PCI device type. > Is there any preferred solution in the Linux kernel for this kind of use-case? > > All the ideas appreciated. > > Thanks, > /Waldek