Linux bluetooth development
 help / color / mirror / Atom feed
* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
       [not found] <0303224f-4c2c-46ec-9866-5ea1fd0fb4a3@oss.qualcomm.com>
@ 2026-08-25  9:27 ` Wei Deng
  2026-09-02 13:48   ` Manivannan Sadhasivam
  0 siblings, 1 reply; 9+ messages in thread
From: Wei Deng @ 2026-08-25  9:27 UTC (permalink / raw)
  To: konrad.dybcio
  Cc: manivannan.sadhasivam, mani, loic.poulain, andersson, konradybcio,
	robh, krzk+dt, conor+dt, linux-bluetooth, linux-arm-msm,
	devicetree, linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang,
	jinwang.li, xiuzhuo.shang, mengshi.wu

Hi Konrad,

On Wed, 19 Aug 2026 16:24:35 +0200, Konrad Dybcio wrote:
> On 8/19/26 4:13 PM, Wei Deng wrote:
> > On Wed, 29 Jul 2026 08:06:54 +0530, Wei Deng wrote:
> >> Fair point. I will move the port/endpoint anchors to monaco.dtsi in v2.
> > 
> > After testing v2 on qcs8300-ride-sx, BT init broke. qcs8300-ride-sx has a
> > soldered WCN6855 and no M.2 Key E connector, but the pending series [1]
> > uses of_graph_is_present() to detect whether an M.2 connector is present.
> > Since of_graph_is_present() only checks for a 'port' child node, the empty
> > anchors in monaco.dtsi caused hci_qca to incorrectly enter the M.2 pwrseq
> > path on all monaco boards.
> > 
> > v3 moves the port/endpoint nodes back to monaco-evk.dts. Please review.
> > 
> > [1] https://lore.kernel.org/all/20260720-monza-wireless-v5-1-69ec6743543c@oss.qualcomm.com/
> 
> The series should test of_graph_get_remote_endpoint() instead
> 
> Konrad

Hi Konrad,

Tested: replacing of_graph_is_present() with of_graph_get_remote_endpoint()
in hci_qca.c works correctly. The M.2 pwrseq path is only entered when a
remote-endpoint is actually populated, so boards like qcs8300-ride (soldered
WCN6855, no M.2 connector) are no longer affected.

Hi Mani, Loic,

We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
suggested moving the port/endpoint anchor nodes to the SoC DTSI
(monaco.dtsi) for clean DTS layering, so that board files only need to
fill in remote-endpoint for boards that actually have an M.2 connector.

However, when we did this, BT init broke on qcs8300-ride-sx, a monaco-based
board with a soldered WCN6855 and no M.2 connector. The root cause is that
of_graph_is_present() in hci_qca.c only checks for the presence of a 'port'
child node — it returns true even when the port/endpoint anchors in the DTSI
are empty (no remote-endpoint set). As a result, hci_qca incorrectly enters
the M.2 pwrseq path on all monaco boards.

Konrad suggested using of_graph_get_remote_endpoint() instead, which only
returns non-NULL when a remote-endpoint is actually populated. I tested this
on lemans and it works correctly.

Would it be acceptable to change the M.2 detection in hci_qca.c [1] from:

	if (of_graph_is_present(dev_of_node(&serdev->ctrl->dev))) {
		qcadev->bt_power->pwrseq = devm_pwrseq_get(&serdev->ctrl->dev,
							   "uart");
		if (IS_ERR(qcadev->bt_power->pwrseq))
			return PTR_ERR(qcadev->bt_power->pwrseq);
		break;
	}

to:

	{
		struct device_node *ep, *remote_ep;

		ep = of_graph_get_next_endpoint(
				dev_of_node(&serdev->ctrl->dev), NULL);
		remote_ep = ep ? of_graph_get_remote_endpoint(ep) : NULL;
		of_node_put(ep);

		if (remote_ep) {
			of_node_put(remote_ep);
			qcadev->bt_power->pwrseq = devm_pwrseq_get(
					&serdev->ctrl->dev, "uart");
			if (IS_ERR(qcadev->bt_power->pwrseq))
				return PTR_ERR(qcadev->bt_power->pwrseq);
			break;
		}
	}

[1] https://lore.kernel.org/all/20260720-monza-wireless-v5-1-69ec6743543c@oss.qualcomm.com/
[2] https://lore.kernel.org/all/20260819141353.96467-1-wei.deng@oss.qualcomm.com/

-- 
Best Regards,
Wei Deng

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-08-25  9:27 ` [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector Wei Deng
@ 2026-09-02 13:48   ` Manivannan Sadhasivam
  2026-09-21 12:38     ` Konrad Dybcio
  0 siblings, 1 reply; 9+ messages in thread
From: Manivannan Sadhasivam @ 2026-09-02 13:48 UTC (permalink / raw)
  To: Wei Deng
  Cc: konrad.dybcio, loic.poulain, andersson, konradybcio, robh,
	krzk+dt, conor+dt, linux-bluetooth, linux-arm-msm, devicetree,
	linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li,
	xiuzhuo.shang, mengshi.wu

On Tue, Aug 25, 2026 at 02:57:15PM +0530, Wei Deng wrote:
> Hi Konrad,
> 
> On Wed, 19 Aug 2026 16:24:35 +0200, Konrad Dybcio wrote:
> > On 8/19/26 4:13 PM, Wei Deng wrote:
> > > On Wed, 29 Jul 2026 08:06:54 +0530, Wei Deng wrote:
> > >> Fair point. I will move the port/endpoint anchors to monaco.dtsi in v2.
> > > 
> > > After testing v2 on qcs8300-ride-sx, BT init broke. qcs8300-ride-sx has a
> > > soldered WCN6855 and no M.2 Key E connector, but the pending series [1]
> > > uses of_graph_is_present() to detect whether an M.2 connector is present.
> > > Since of_graph_is_present() only checks for a 'port' child node, the empty
> > > anchors in monaco.dtsi caused hci_qca to incorrectly enter the M.2 pwrseq
> > > path on all monaco boards.
> > > 
> > > v3 moves the port/endpoint nodes back to monaco-evk.dts. Please review.
> > > 
> > > [1] https://lore.kernel.org/all/20260720-monza-wireless-v5-1-69ec6743543c@oss.qualcomm.com/
> > 
> > The series should test of_graph_get_remote_endpoint() instead
> > 
> > Konrad
> 
> Hi Konrad,
> 
> Tested: replacing of_graph_is_present() with of_graph_get_remote_endpoint()
> in hci_qca.c works correctly. The M.2 pwrseq path is only entered when a
> remote-endpoint is actually populated, so boards like qcs8300-ride (soldered
> WCN6855, no M.2 connector) are no longer affected.
> 
> Hi Mani, Loic,
> 
> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
> suggested moving the port/endpoint anchor nodes to the SoC DTSI
> (monaco.dtsi) for clean DTS layering, so that board files only need to
> fill in remote-endpoint for boards that actually have an M.2 connector.
> 

This means, the dummy port/endpoint node will always be present even when the
M.2 connector is not used. I don't see a compelling reason to do so.

- Mani

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-09-02 13:48   ` Manivannan Sadhasivam
@ 2026-09-21 12:38     ` Konrad Dybcio
  2026-10-13  8:13       ` Loic Poulain
  0 siblings, 1 reply; 9+ messages in thread
From: Konrad Dybcio @ 2026-09-21 12:38 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Wei Deng
  Cc: loic.poulain, andersson, konradybcio, robh, krzk+dt, conor+dt,
	linux-bluetooth, linux-arm-msm, devicetree, linux-kernel,
	quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
	mengshi.wu

On 9/2/26 3:48 PM, Manivannan Sadhasivam wrote:
> On Tue, Aug 25, 2026 at 02:57:15PM +0530, Wei Deng wrote:
>> Hi Konrad,
>>
>> On Wed, 19 Aug 2026 16:24:35 +0200, Konrad Dybcio wrote:
>>> On 8/19/26 4:13 PM, Wei Deng wrote:
>>>> On Wed, 29 Jul 2026 08:06:54 +0530, Wei Deng wrote:
>>>>> Fair point. I will move the port/endpoint anchors to monaco.dtsi in v2.
>>>>
>>>> After testing v2 on qcs8300-ride-sx, BT init broke. qcs8300-ride-sx has a
>>>> soldered WCN6855 and no M.2 Key E connector, but the pending series [1]
>>>> uses of_graph_is_present() to detect whether an M.2 connector is present.
>>>> Since of_graph_is_present() only checks for a 'port' child node, the empty
>>>> anchors in monaco.dtsi caused hci_qca to incorrectly enter the M.2 pwrseq
>>>> path on all monaco boards.
>>>>
>>>> v3 moves the port/endpoint nodes back to monaco-evk.dts. Please review.
>>>>
>>>> [1] https://lore.kernel.org/all/20260720-monza-wireless-v5-1-69ec6743543c@oss.qualcomm.com/
>>>
>>> The series should test of_graph_get_remote_endpoint() instead
>>>
>>> Konrad
>>
>> Hi Konrad,
>>
>> Tested: replacing of_graph_is_present() with of_graph_get_remote_endpoint()
>> in hci_qca.c works correctly. The M.2 pwrseq path is only entered when a
>> remote-endpoint is actually populated, so boards like qcs8300-ride (soldered
>> WCN6855, no M.2 connector) are no longer affected.
>>
>> Hi Mani, Loic,
>>
>> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
>> suggested moving the port/endpoint anchor nodes to the SoC DTSI
>> (monaco.dtsi) for clean DTS layering, so that board files only need to
>> fill in remote-endpoint for boards that actually have an M.2 connector.
>>
> 
> This means, the dummy port/endpoint node will always be present even when the
> M.2 connector is not used. I don't see a compelling reason to do so.

I don't really see a compelling reason to defer re-defining them to each
device DT either..

Konrad


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-09-21 12:38     ` Konrad Dybcio
@ 2026-10-13  8:13       ` Loic Poulain
  2026-10-22  9:34         ` Konrad Dybcio
  0 siblings, 1 reply; 9+ messages in thread
From: Loic Poulain @ 2026-10-13  8:13 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Manivannan Sadhasivam, Wei Deng, andersson, konradybcio, robh,
	krzk+dt, conor+dt, linux-bluetooth, linux-arm-msm, devicetree,
	linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li,
	xiuzhuo.shang, mengshi.wu

Hi Folks,

On Mon, Sep 21, 2026 at 2:38 PM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 9/2/26 3:48 PM, Manivannan Sadhasivam wrote:
> > On Tue, Aug 25, 2026 at 02:57:15PM +0530, Wei Deng wrote:
> >> Hi Konrad,
> >>
> >> On Wed, 19 Aug 2026 16:24:35 +0200, Konrad Dybcio wrote:
> >>> On 8/19/26 4:13 PM, Wei Deng wrote:
> >>>> On Wed, 29 Jul 2026 08:06:54 +0530, Wei Deng wrote:
> >>>>> Fair point. I will move the port/endpoint anchors to monaco.dtsi in v2.
> >>>>
> >>>> After testing v2 on qcs8300-ride-sx, BT init broke. qcs8300-ride-sx has a
> >>>> soldered WCN6855 and no M.2 Key E connector, but the pending series [1]
> >>>> uses of_graph_is_present() to detect whether an M.2 connector is present.
> >>>> Since of_graph_is_present() only checks for a 'port' child node, the empty
> >>>> anchors in monaco.dtsi caused hci_qca to incorrectly enter the M.2 pwrseq
> >>>> path on all monaco boards.
> >>>>
> >>>> v3 moves the port/endpoint nodes back to monaco-evk.dts. Please review.
> >>>>
> >>>> [1] https://lore.kernel.org/all/20260720-monza-wireless-v5-1-69ec6743543c@oss.qualcomm.com/
> >>>
> >>> The series should test of_graph_get_remote_endpoint() instead
> >>>
> >>> Konrad
> >>
> >> Hi Konrad,
> >>
> >> Tested: replacing of_graph_is_present() with of_graph_get_remote_endpoint()
> >> in hci_qca.c works correctly. The M.2 pwrseq path is only entered when a
> >> remote-endpoint is actually populated, so boards like qcs8300-ride (soldered
> >> WCN6855, no M.2 connector) are no longer affected.
> >>
> >> Hi Mani, Loic,
> >>
> >> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
> >> suggested moving the port/endpoint anchor nodes to the SoC DTSI
> >> (monaco.dtsi) for clean DTS layering, so that board files only need to
> >> fill in remote-endpoint for boards that actually have an M.2 connector.
> >>
> >
> > This means, the dummy port/endpoint node will always be present even when the
> > M.2 connector is not used. I don't see a compelling reason to do so.
>
> I don't really see a compelling reason to defer re-defining them to each
> device DT either..

Adding an empty port/endpoint at the SoC level is problematic for
uart, port is not always expected, this depends if the uart is exposed
through a connector or to an onboard device. So we may end with an
unconnected endpoint but still have a bluetooth subnode, which can be
a bit confusing... Also why adding a port/endpoint only for a specific
uart in the dts, and not for the others? This is a board/SoC level
choice to use a specific uart for M2 or not.

Regards,
Loic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-10-13  8:13       ` Loic Poulain
@ 2026-10-22  9:34         ` Konrad Dybcio
  2026-10-22 13:08           ` Loic Poulain
  0 siblings, 1 reply; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-22  9:34 UTC (permalink / raw)
  To: Loic Poulain
  Cc: Manivannan Sadhasivam, Wei Deng, andersson, konradybcio, robh,
	krzk+dt, conor+dt, linux-bluetooth, linux-arm-msm, devicetree,
	linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li,
	xiuzhuo.shang, mengshi.wu

On 10/13/26 10:13 AM, Loic Poulain wrote:
> Hi Folks,
> 
> On Mon, Sep 21, 2026 at 2:38 PM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:

[...]

>>>> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
>>>> suggested moving the port/endpoint anchor nodes to the SoC DTSI
>>>> (monaco.dtsi) for clean DTS layering, so that board files only need to
>>>> fill in remote-endpoint for boards that actually have an M.2 connector.
>>>>
>>>
>>> This means, the dummy port/endpoint node will always be present even when the
>>> M.2 connector is not used. I don't see a compelling reason to do so.
>>
>> I don't really see a compelling reason to defer re-defining them to each
>> device DT either..
> 
> Adding an empty port/endpoint at the SoC level is problematic for
> uart, port is not always expected, this depends if the uart is exposed
> through a connector or to an onboard device. So we may end with an
> unconnected endpoint but still have a bluetooth subnode, which can be
> a bit confusing... Also why adding a port/endpoint only for a specific
> uart in the dts, and not for the others? This is a board/SoC level
> choice to use a specific uart for M2 or not.

From my perspective it's removing boilerplate. Currently all USB and
PCIe hosts already define their ports and endpoints in the SoC DTSI
and if they're unconnected, then simply nothing happens.

Both 'ports' and 'endpoints' are an abstract property that signify
'X can be related to Y' and I don't see how that's a problem here given
UART is very much expected to be connected "somewhere" (with the
"somewhere" perhaps being external/a pin header)

Konrad

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-10-22  9:34         ` Konrad Dybcio
@ 2026-10-22 13:08           ` Loic Poulain
  2026-10-22 13:16             ` Konrad Dybcio
  2026-10-26 12:13             ` Manivannan Sadhasivam
  0 siblings, 2 replies; 9+ messages in thread
From: Loic Poulain @ 2026-10-22 13:08 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Manivannan Sadhasivam, Wei Deng, andersson, konradybcio, robh,
	krzk+dt, conor+dt, linux-bluetooth, linux-arm-msm, devicetree,
	linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li,
	xiuzhuo.shang, mengshi.wu

On Thu, Oct 22, 2026 at 11:34 AM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 10/13/26 10:13 AM, Loic Poulain wrote:
> > Hi Folks,
> >
> > On Mon, Sep 21, 2026 at 2:38 PM Konrad Dybcio
> > <konrad.dybcio@oss.qualcomm.com> wrote:
>
> [...]
>
> >>>> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
> >>>> suggested moving the port/endpoint anchor nodes to the SoC DTSI
> >>>> (monaco.dtsi) for clean DTS layering, so that board files only need to
> >>>> fill in remote-endpoint for boards that actually have an M.2 connector.
> >>>>
> >>>
> >>> This means, the dummy port/endpoint node will always be present even when the
> >>> M.2 connector is not used. I don't see a compelling reason to do so.
> >>
> >> I don't really see a compelling reason to defer re-defining them to each
> >> device DT either..
> >
> > Adding an empty port/endpoint at the SoC level is problematic for
> > uart, port is not always expected, this depends if the uart is exposed
> > through a connector or to an onboard device. So we may end with an
> > unconnected endpoint but still have a bluetooth subnode, which can be
> > a bit confusing... Also why adding a port/endpoint only for a specific
> > uart in the dts, and not for the others? This is a board/SoC level
> > choice to use a specific uart for M2 or not.
>
> From my perspective it's removing boilerplate. Currently all USB and
> PCIe hosts already define their ports and endpoints in the SoC DTSI
> and if they're unconnected, then simply nothing happens.
>
> Both 'ports' and 'endpoints' are an abstract property that signify
> 'X can be related to Y' and I don't see how that's a problem here given
> UART is very much expected to be connected "somewhere" (with the
> "somewhere" perhaps being external/a pin header)

Yes, but in the UART case, where the connection can be represented in
different ways, we can end up with devices being described as both
unconnected (no remote endpoint) and connected (via a child device).
We can probably live with that, but if we go in this direction, we
should consider adding a port/endpoint definition for every UART
instance in the DTSI for consistency. The same would apply to I2C once
endpoint support is available there as well.

Regards,
Loic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-10-22 13:08           ` Loic Poulain
@ 2026-10-22 13:16             ` Konrad Dybcio
  2026-10-26 12:13             ` Manivannan Sadhasivam
  1 sibling, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-22 13:16 UTC (permalink / raw)
  To: Loic Poulain
  Cc: Manivannan Sadhasivam, Wei Deng, andersson, konradybcio, robh,
	krzk+dt, conor+dt, linux-bluetooth, linux-arm-msm, devicetree,
	linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li,
	xiuzhuo.shang, mengshi.wu

On 10/22/26 3:08 PM, Loic Poulain wrote:
> On Thu, Oct 22, 2026 at 11:34 AM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 10/13/26 10:13 AM, Loic Poulain wrote:
>>> Hi Folks,
>>>
>>> On Mon, Sep 21, 2026 at 2:38 PM Konrad Dybcio
>>> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> [...]
>>
>>>>>> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
>>>>>> suggested moving the port/endpoint anchor nodes to the SoC DTSI
>>>>>> (monaco.dtsi) for clean DTS layering, so that board files only need to
>>>>>> fill in remote-endpoint for boards that actually have an M.2 connector.
>>>>>>
>>>>>
>>>>> This means, the dummy port/endpoint node will always be present even when the
>>>>> M.2 connector is not used. I don't see a compelling reason to do so.
>>>>
>>>> I don't really see a compelling reason to defer re-defining them to each
>>>> device DT either..
>>>
>>> Adding an empty port/endpoint at the SoC level is problematic for
>>> uart, port is not always expected, this depends if the uart is exposed
>>> through a connector or to an onboard device. So we may end with an
>>> unconnected endpoint but still have a bluetooth subnode, which can be
>>> a bit confusing... Also why adding a port/endpoint only for a specific
>>> uart in the dts, and not for the others? This is a board/SoC level
>>> choice to use a specific uart for M2 or not.
>>
>> From my perspective it's removing boilerplate. Currently all USB and
>> PCIe hosts already define their ports and endpoints in the SoC DTSI
>> and if they're unconnected, then simply nothing happens.
>>
>> Both 'ports' and 'endpoints' are an abstract property that signify
>> 'X can be related to Y' and I don't see how that's a problem here given
>> UART is very much expected to be connected "somewhere" (with the
>> "somewhere" perhaps being external/a pin header)
> 
> Yes, but in the UART case, where the connection can be represented in
> different ways, we can end up with devices being described as both
> unconnected (no remote endpoint) and connected (via a child device).
> We can probably live with that, but if we go in this direction, we
> should consider adding a port/endpoint definition for every UART
> instance in the DTSI for consistency. The same would apply to I2C once
> endpoint support is available there as well.

Guess so!

Konrad

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-10-22 13:08           ` Loic Poulain
  2026-10-22 13:16             ` Konrad Dybcio
@ 2026-10-26 12:13             ` Manivannan Sadhasivam
  2026-10-27 11:21               ` Konrad Dybcio
  1 sibling, 1 reply; 9+ messages in thread
From: Manivannan Sadhasivam @ 2026-10-26 12:13 UTC (permalink / raw)
  To: Loic Poulain
  Cc: Konrad Dybcio, Wei Deng, andersson, konradybcio, robh, krzk+dt,
	conor+dt, linux-bluetooth, linux-arm-msm, devicetree,
	linux-kernel, quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li,
	xiuzhuo.shang, mengshi.wu

On Thu, Oct 22, 2026 at 03:08:44PM +0200, Loic Poulain wrote:
> On Thu, Oct 22, 2026 at 11:34 AM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
> >
> > On 10/13/26 10:13 AM, Loic Poulain wrote:
> > > Hi Folks,
> > >
> > > On Mon, Sep 21, 2026 at 2:38 PM Konrad Dybcio
> > > <konrad.dybcio@oss.qualcomm.com> wrote:
> >
> > [...]
> >
> > >>>> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
> > >>>> suggested moving the port/endpoint anchor nodes to the SoC DTSI
> > >>>> (monaco.dtsi) for clean DTS layering, so that board files only need to
> > >>>> fill in remote-endpoint for boards that actually have an M.2 connector.
> > >>>>
> > >>>
> > >>> This means, the dummy port/endpoint node will always be present even when the
> > >>> M.2 connector is not used. I don't see a compelling reason to do so.
> > >>
> > >> I don't really see a compelling reason to defer re-defining them to each
> > >> device DT either..
> > >
> > > Adding an empty port/endpoint at the SoC level is problematic for
> > > uart, port is not always expected, this depends if the uart is exposed
> > > through a connector or to an onboard device. So we may end with an
> > > unconnected endpoint but still have a bluetooth subnode, which can be
> > > a bit confusing... Also why adding a port/endpoint only for a specific
> > > uart in the dts, and not for the others? This is a board/SoC level
> > > choice to use a specific uart for M2 or not.
> >
> > From my perspective it's removing boilerplate. Currently all USB and
> > PCIe hosts already define their ports and endpoints in the SoC DTSI
> > and if they're unconnected, then simply nothing happens.
> >
> > Both 'ports' and 'endpoints' are an abstract property that signify
> > 'X can be related to Y' and I don't see how that's a problem here given
> > UART is very much expected to be connected "somewhere" (with the
> > "somewhere" perhaps being external/a pin header)
> 
> Yes, but in the UART case, where the connection can be represented in
> different ways, we can end up with devices being described as both
> unconnected (no remote endpoint) and connected (via a child device).
> We can probably live with that, but if we go in this direction, we
> should consider adding a port/endpoint definition for every UART
> instance in the DTSI for consistency. The same would apply to I2C once
> endpoint support is available there as well.
> 

Yeah, that's also one of the thing I really hate. For getting rid of
boilerplate, we will be just introducing dead nodes :/

- Mani

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
  2026-10-26 12:13             ` Manivannan Sadhasivam
@ 2026-10-27 11:21               ` Konrad Dybcio
  0 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-27 11:21 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Loic Poulain
  Cc: Wei Deng, andersson, konradybcio, robh, krzk+dt, conor+dt,
	linux-bluetooth, linux-arm-msm, devicetree, linux-kernel,
	quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
	mengshi.wu

On 10/26/26 1:13 PM, Manivannan Sadhasivam wrote:
> On Thu, Oct 22, 2026 at 03:08:44PM +0200, Loic Poulain wrote:
>> On Thu, Oct 22, 2026 at 11:34 AM Konrad Dybcio
>> <konrad.dybcio@oss.qualcomm.com> wrote:
>>>
>>> On 10/13/26 10:13 AM, Loic Poulain wrote:
>>>> Hi Folks,
>>>>
>>>> On Mon, Sep 21, 2026 at 2:38 PM Konrad Dybcio
>>>> <konrad.dybcio@oss.qualcomm.com> wrote:
>>>
>>> [...]
>>>
>>>>>>> We are adding M.2 Key E connector support for monaco-evk [2]. Konrad
>>>>>>> suggested moving the port/endpoint anchor nodes to the SoC DTSI
>>>>>>> (monaco.dtsi) for clean DTS layering, so that board files only need to
>>>>>>> fill in remote-endpoint for boards that actually have an M.2 connector.
>>>>>>>
>>>>>>
>>>>>> This means, the dummy port/endpoint node will always be present even when the
>>>>>> M.2 connector is not used. I don't see a compelling reason to do so.
>>>>>
>>>>> I don't really see a compelling reason to defer re-defining them to each
>>>>> device DT either..
>>>>
>>>> Adding an empty port/endpoint at the SoC level is problematic for
>>>> uart, port is not always expected, this depends if the uart is exposed
>>>> through a connector or to an onboard device. So we may end with an
>>>> unconnected endpoint but still have a bluetooth subnode, which can be
>>>> a bit confusing... Also why adding a port/endpoint only for a specific
>>>> uart in the dts, and not for the others? This is a board/SoC level
>>>> choice to use a specific uart for M2 or not.
>>>
>>> From my perspective it's removing boilerplate. Currently all USB and
>>> PCIe hosts already define their ports and endpoints in the SoC DTSI
>>> and if they're unconnected, then simply nothing happens.
>>>
>>> Both 'ports' and 'endpoints' are an abstract property that signify
>>> 'X can be related to Y' and I don't see how that's a problem here given
>>> UART is very much expected to be connected "somewhere" (with the
>>> "somewhere" perhaps being external/a pin header)
>>
>> Yes, but in the UART case, where the connection can be represented in
>> different ways, we can end up with devices being described as both
>> unconnected (no remote endpoint) and connected (via a child device).
>> We can probably live with that, but if we go in this direction, we
>> should consider adding a port/endpoint definition for every UART
>> instance in the DTSI for consistency. The same would apply to I2C once
>> endpoint support is available there as well.
>>
> 
> Yeah, that's also one of the thing I really hate. For getting rid of
> boilerplate, we will be just introducing dead nodes :/

I disagree about this being a problem, but I won't block further.

Konrad

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-10-27 11:21 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <0303224f-4c2c-46ec-9866-5ea1fd0fb4a3@oss.qualcomm.com>
2026-08-25  9:27 ` [PATCH 2/2] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector Wei Deng
2026-09-02 13:48   ` Manivannan Sadhasivam
2026-09-21 12:38     ` Konrad Dybcio
2026-10-13  8:13       ` Loic Poulain
2026-10-22  9:34         ` Konrad Dybcio
2026-10-22 13:08           ` Loic Poulain
2026-10-22 13:16             ` Konrad Dybcio
2026-10-26 12:13             ` Manivannan Sadhasivam
2026-10-27 11:21               ` Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox