Re: [PATCH v2 1/6] dt-bindings: bluetooth: qca: add QCC2072
Manivannan Sadhasivam <[email protected]> Wed, 5 Aug 2026 16:12:16 +0200
| Newsgroups | org.kernel.vger.linux-pci,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <sewfntbhqtj2apfdi4ouan27artvj4lyxqizvinsvzltbofqu2@riuoo3fmczff> |
On Wed, Aug 05, 2026 at 02:33:51PM +0200, Krzysztof Kozlowski wrote: > On 05/08/2026 14:09, Manivannan Sadhasivam wrote: > > On Sat, Aug 01, 2026 at 05:49:53PM +0200, Krzysztof Kozlowski wrote: > >> On 01/08/2026 17:31, Rahul Samana wrote: > >>> > >>> > >>> On 01-08-2026 20:18, Krzysztof Kozlowski wrote: > >>>> On 31/07/2026 17:51, Rahul Samana wrote: > >>>>> > >>>>> > >>>>> On 31-07-2026 20:34, Krzysztof Kozlowski wrote: > >>>>>> On 31/07/2026 16:45, Rahul Samana wrote: > >>>>>>> > >>>>>>> > >>>>>>> On 31-07-2026 15:16, Krzysztof Kozlowski wrote: > >>>>>>>> On Mon, Jul 27, 2026 at 09:15:01PM +0530, Rahul Samana wrote: > >>>>>>>>> QCC2072 can be used on M.2 E-key cards where the card power resources are > >>>>>>>>> described by the pcie-m2-e-connector node. In that setup, the M.2 power > >>>>>>>>> sequencing provider creates the Bluetooth serdev child after matching the > >>>>>>>>> QCC2072 PCI function. > >>>>>>>>> > >>>>>>>>> Integrated non-M.2 designs need board-specific power resources. Document > >>>>>>>>> only the compatible for now and leave those properties to be added with > >>>>>>>>> matching driver support. > >>>>>>>>> > >>>>>>>>> Document the qcom,qcc2072-bt compatible used for QCC2072 Bluetooth > >>>>>>>>> controllers connected over UART. > >>>>>>>>> > >>>>>>>>> Signed-off-by: Rahul Samana <[email protected]> > >>>>>>>> > >>>>>>>> NAK, exactly same comments as before. > >>>>>>>> > >>>>>>>> Nothing got improved, although what is weird - original SoB is gone, so > >>>>>>>> this is legally dubious work. > >>>>>>>> > >>>>>>>> Best regards, > >>>>>>>> Krzysztof > >>>>>>>> > >>>>>>> > >>>>>>> Hi Krzysztof, > >>>>>>> > >>>>>>> Thanks for the review. > >>>>>>> > >>>>>>> For the binding contents, I tried to capture the current scope in the binding > >>>>>>> description itself. This series supports QCC2072 only as an M.2 E-key card, > >>>>>>> where the card power resources are described by the pcie-m2-e-connector node > >>>>>>> and the M.2 pwrseq provider creates the Bluetooth serdev child. > >>>>>>> > >>>>>>> The binding also says: > >>>>>>> > >>>>>>> Integrated non-M.2 designs require board-specific power resources. Those > >>>>>>> properties, together with a static devicetree example, should be added when > >>>>>>> integrated non-M.2 support is added. > >>>>>> > >>>>>> Bindings must be complete and your driver support is irrelevant here. > >>>>>> > >>>>>> If you claim this is a PCI device thus you do not need any resources, > >>>>>> then the binding is not needed either. PCI devices are enumerable. And > >>>>>> to prove it: look at your DTS. Do you see qcom,qcc2072-bt being used? No. > >>>>>> > >>>>>>> > >>>>>>> We do not currently have an integrated non-M.2 QCC2072 design, so I do not > >>>>>>> have board-specific regulator supplies to document for that topology. > >>>>>>> > >>>>>>> Could you please suggest how you would prefer this binding to be handled for > >>>>>>> the current M.2-only use case? > >>>>>> > >>>>>> Drop the binding, you do not need it. > >>>>>> > >>>>>> Anyway the problem is that more comments were ignored. > >>>>>> > >>>>> > >>>>> Hi Krzysztof, > >>>>> > >>>>> Just to clarify the reason for adding this binding in v2: > >>>>> v1 did not add a binding because this series only targets the M.2 use case. > >>>>> > >>>>> I added the minimal binding in v2 because checkpatch reported > >>>>> qcom,qcc2072-bt as an undocumented compatible, and I interpreted the request > >>>>> to fix the checkpatch warnings as requiring this compatible to be documented. > >>>>> I also had the earlier feedback in mind, where the indirect > >>>>> qcom,qcc2072-bt compatible was pushed back because it was undocumented: > >>>>> > >>>>> https://lore.kernel.org/all/[email protected]/ > >>>>> > >>>>> Based on your clarification here, I will drop the binding patch in v3 and > >>>>> keep qcom,qcc2072-bt only as the pwrseq-created child compatible for this > >>>>> M.2 case. > >>>> > >>>> My previous statement is also valid, please read entire threads. > >>>> > >>>> You cannot have undocumented qcom,qcc2072-bt. > >>>> > >>>> I ask you to drop both, because they are not needed. But feel free to > >>>> prove me wrong, see my first paragraph in the previous reply. > >>>> > >>>> > >>> The PCIe M.2 power sequencing driver, pwrseq-pcie-m2.c, uses > >>> pwrseq_m2_pci_ids to translate the enumerated PCI function into the > >>> Bluetooth compatible used for the generated serdev child. > >>> > >>> For example, WCN7850 maps PCI ID 17cb:1107 to qcom,wcn7850-bt, then hci_qca > >>> matches that compatible to select qca_soc_data_wcn7850. > >>> > >>> For QCC2072, pwrseq-pcie-m2.c matches PCI ID 17cb:1112 and creates the > >>> generated Bluetooth serdev child with compatible "qcom,qcc2072-bt". The > >>> hci_qca driver then matches "qcom,qcc2072-bt" and uses qca_soc_data_qcc2072 > >>> as the controller-specific data. > >> > >> The purpose of Devicetree is not to describe Linux internal driver > >> matching. Do not use compatibles for that. > >> > >> > >>> > >>> That match data is needed by hci_qca to select the QCC2072 soc_type, > >>> firmware/NVM naming, calibration handling, and capabilities. Without some > >>> identity being passed from the PCI match to the generated serdev child, > >>> hci_qca cannot distinguish QCC2072 from the other Qualcomm UART Bluetooth > >>> controllers on this path. > >>> > >>> Please correct me if I misunderstood the concern or if you are asking for > >>> this identity to be passed from pwrseq-pcie-m2.c to hci_qca through a > >>> different mechanism. > >>> > >>> I can drop the binding patch, but unless there is a preferred alternative > >>> mechanism, I think we still need the pwrseq-pcie-m2 QCC2072 PCI ID support > >>> from patch 3 so the power sequencing driver can pass the QCC2072 identity > >>> into hci_qca through the generated serdev child: > >> > >> You have plenty of options, starting from what is very common already - > >> driver name used by MFD or aux devices. > >> > > > > It is not just a driver matching problem, but ensuring that we properly describe > > the BT device in DT. Since the BT interface of the M.2 device is not > > This device does not exist in DT. This is the problem which started my > entire investigation and above email. > > I am happy to see proofs of it existing in DTS. > > My proof: > 1. copy-paste the compatible (qcom,qcc2072-bt) from the binding. > 2. Open each DTS patch and look for that compatible: no results. > You are right that this compatible didn't exist in DT and I never claimed that it does. > > > > discoverable, we are currently using the PCIe IDs of the M.2 device to create > > the BT node dynamically under UART node using OF_DYNAMIC as proposed in this > > patch which got merged already [1]. Then we also create the serdev device and > > allow the existing BT hci_qca driver to probe and make use of the created DT > > node. > > Your Linux drivers are not supposed to create internal OF for regular > DT. Please drop that patch. I do not get why that patch was merged > without any DT approval. > Both Rob, you and devicetree lists were CCed to the series and there were reviews from Rob for multiple patches in that series too. So I interpreted his absence of reviews on other patches in the series as silent Acks. > DT is not representation of internal device driver instantiation mechanism. > Here, the driver is just creating compatible for a real device. What difference does it make if the BT node was defined statically in the DT vs created dynamically? Both nodes do represent a real BT device, not driver's own representation. And by the time the node was created, the device is physically attached to the system. - Mani -- மணிவண்ணன் சதாசிவம்