Re: [PATCH 4/6] dt-bindings: net: bluetooth: Document Qualcomm IPQ5018 Bluetooth controller
George Moussalem <[email protected]> Fri, 26 Jun 2026 15:20:29 +0400
| Newsgroups | org.infradead.lists.ath10k,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-block,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mmc,org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <SN7PR19MB673692EBED649CF6DC9833A89DEB2@SN7PR19MB6736.namprd19.prod.outlook.com> |
On 6/26/26 14:53, Krzysztof Kozlowski wrote: > On Thu, Jun 25, 2026 at 06:10:08PM +0400, George Moussalem wrote: >> Document the Qualcomm IPQ5018 Bluetooth controller. >> >> Signed-off-by: George Moussalem <[email protected]> >> --- >> .../bindings/net/bluetooth/qcom,ipq5018-bt.yaml | 63 ++++++++++++++++++++++ >> 1 file changed, 63 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/net/bluetooth/qcom,ipq5018-bt.yaml b/Documentation/devicetree/bindings/net/bluetooth/qcom,ipq5018-bt.yaml >> new file mode 100644 >> index 000000000000..afd33f851858 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/net/bluetooth/qcom,ipq5018-bt.yaml >> @@ -0,0 +1,63 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/net/bluetooth/qcom,ipq5018-bt.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Qualcomm IPQ5018 Bluetooth >> + >> +maintainers: >> + - George Moussalem <[email protected]> >> + >> +properties: >> + compatible: >> + enum: >> + - qcom,ipq5018-bt >> + >> + interrupts: >> + items: >> + - description: >> + Interrupt line from the M0 Bluetooth Subsystem to the host processor > > What is M0? it's a low power Cortex M0 core, for Bluetooth processing in this case. > > Anyway, this part feels completely redundant. Can "interrupts" property > be anything else than an interrupt line from the device to the host > processor? > > >> + to notify it of events such as re > > This feels useful, but cut/incomplete. yeah, c/p error. The interrupt is to notify the host of bluetooth events running on the m0 core, such as TX/CMD completion and/or availability of new data frames in the ring buffers. > >> + >> + qcom,ipc: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + items: >> + - items: >> + - description: phandle to a syscon node representing the APCS registers >> + - description: u32 representing offset to the register within the syscon >> + - description: u32 representing the ipc bit within the register >> + description: | >> + These entries specify the outgoing IPC bit used for signaling the remote >> + M0 BTSS core of a host event or for sending an ACK if the remote processor >> + expects it. >> + >> + qcom,rproc: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + Phandle to the remote processor node representing the M0 BTSS core. >> + >> +required: >> + - compatible >> + - interrupts >> + - qcom,ipc >> + - qcom,rproc >> + >> +allOf: >> + - $ref: bluetooth-controller.yaml# >> + - $ref: qcom,bluetooth-common.yaml >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> + bluetooth: bluetooth { > > Drop unused label will drop > >> + compatible = "qcom,ipq5018-bt"; >> + >> + qcom,ipc = <&apcs_glb 8 23>; >> + interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>; > > No firmware to load? firmware is loaded by the remoteproc in patch 1 > > It feels like remoteproc node split is fake. The property qcom,rproc is > even more supporting that case. Shouldn't this be simply one device - > bluetooth? What sort of two devices do you have exactly? How can I > identify them in the hardware? I wasn't sure how to represent the HW. Should I make this bluetooth node a childnode of the rproc? Essentially, this is the transport layer (using shared memory space and IPC/interrupt). Most QCA BT controllers are also childnodes of a serdev/uart node as they use serdev for transport. From what I understand, it's simply BT firmware running on this dedicated M0 core in the SoC itself connected to an RF. > >> + >> + qcom,rproc = <&m0_btss>; > > Best regards, > Krzysztof >