Linux bluetooth development
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Manivannan Sadhasivam <mani@kernel.org>
Cc: Rahul Samana <rahul.samana@oss.qualcomm.com>,
	Bartosz Golaszewski <brgl@kernel.org>,
	Marcel Holtmann <marcel@holtmann.org>,
	Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Balakrishna Godavarthi <quic_bgodavar@quicinc.com>,
	Rocky Liao <quic_rjliao@quicinc.com>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-pm@vger.kernel.org,
	quic_mohamull@quicinc.com, quic_hbandi@quicinc.com,
	quic_anubhavg@quicinc.com
Subject: Re: [PATCH v2 1/6] dt-bindings: bluetooth: qca: add QCC2072
Date: Wed, 5 Aug 2026 14:33:51 +0200	[thread overview]
Message-ID: <8ab6c26f-b648-447c-9fdd-f1424beb44f4@kernel.org> (raw)
In-Reply-To: <gfhlyvoefcsvtjuxfo75qeham272cc5g2r3npjenzs5esjifiy@ro7dtkpxwizk>

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 <rahul.samana@oss.qualcomm.com>
>>>>>>>>
>>>>>>>> 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/20260703-eliza_evk-v1-3-7624440bd76d@oss.qualcomm.com/
>>>>>
>>>>> 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.



> 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.

DT is not representation of internal device driver instantiation mechanism.

Best regards,
Krzysztof

  reply	other threads:[~2026-08-05 12:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-27 15:45 [PATCH v2 0/6] Bluetooth: qca: enable QCC2072 on RB3 Gen 2 Industrial Rahul Samana
2026-07-27 15:45 ` [PATCH v2 1/6] dt-bindings: bluetooth: qca: add QCC2072 Rahul Samana
2026-07-27 16:32   ` Bluetooth: qca: enable QCC2072 on RB3 Gen 2 Industrial bluez.test.bot
2026-07-31  9:46   ` [PATCH v2 1/6] dt-bindings: bluetooth: qca: add QCC2072 Krzysztof Kozlowski
2026-07-31 14:45     ` Rahul Samana
2026-07-31 15:04       ` Krzysztof Kozlowski
2026-07-31 15:51         ` Rahul Samana
2026-08-01 14:48           ` Krzysztof Kozlowski
2026-08-01 15:31             ` Rahul Samana
2026-08-01 15:49               ` Krzysztof Kozlowski
2026-08-05 12:09                 ` Manivannan Sadhasivam
2026-08-05 12:33                   ` Krzysztof Kozlowski [this message]
2026-08-05 14:12                     ` Manivannan Sadhasivam
2026-08-05 14:36                       ` Krzysztof Kozlowski
2026-08-05 14:52                         ` Manivannan Sadhasivam
2026-07-27 15:45 ` [PATCH v2 2/6] Bluetooth: qca: add QCC2072 support Rahul Samana
2026-07-31 15:09   ` Dmitry Baryshkov
2026-07-31 17:51     ` Rahul Samana
2026-07-27 15:45 ` [PATCH v2 3/6] power: sequencing: pwrseq-pcie-m2: add QCC2072 Rahul Samana
2026-07-27 15:45 ` [PATCH v2 4/6] arm64: dts: qcom: qcs6490-rb3gen2: label BT PMU and M.2 PCI node Rahul Samana
2026-07-31 15:30   ` Rahul Samana
2026-07-27 15:45 ` [PATCH v2 5/6] arm64: dts: qcom: kodiak: mark PCIe root port as bridge Rahul Samana
2026-07-27 15:57   ` Rahul Samana
2026-07-29 12:29   ` Konrad Dybcio
2026-07-27 15:45 ` [PATCH v2 6/6] arm64: dts: qcom: rb3gen2: add Industrial BT UART overlay Rahul Samana
2026-07-29 12:31   ` Konrad Dybcio
2026-07-31  6:53     ` Rahul Samana
2026-07-31 12:50       ` Konrad Dybcio
2026-07-31 14:48         ` Rahul Samana
2026-07-31 15:49           ` Konrad Dybcio
2026-07-31 17:50             ` Rahul Samana
2026-08-02  3:38               ` Bjorn Andersson
2026-08-05  6:18                 ` Rahul Samana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8ab6c26f-b648-447c-9fdd-f1424beb44f4@kernel.org \
    --to=krzk@kernel.org \
    --cc=andersson@kernel.org \
    --cc=brgl@bgdev.pl \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    --cc=mani@kernel.org \
    --cc=marcel@holtmann.org \
    --cc=quic_anubhavg@quicinc.com \
    --cc=quic_bgodavar@quicinc.com \
    --cc=quic_hbandi@quicinc.com \
    --cc=quic_mohamull@quicinc.com \
    --cc=quic_rjliao@quicinc.com \
    --cc=rahul.samana@oss.qualcomm.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox