mbox series

[V4,0/3] ARM: dts: bcm2711: Add BCM2711 xHCI support

Message ID 20231205200531.8232-1-wahrenst@gmx.net (mailing list archive)
Headers show
Series ARM: dts: bcm2711: Add BCM2711 xHCI support | expand

Message

Stefan Wahren Dec. 5, 2023, 8:05 p.m. UTC
In contrast to the Raspberry Pi 4, the Compute Module 4 or the IO board
does not have a VL805 USB 3.0 host controller, which is connected via
PCIe. Instead, the Compute Module provides the built-in
xHCI of the BCM2711 SoC.

Changes in V4:
- use "brcm,xhci-brcm-v2" as fallback compatible as suggested by
  Conor & Florian

Changes in V3:
- introduce a new compatible for BCM2711 in order to make the
  power domain dependency SoC specific, which also results in
  a driver change

Changes in V2:
- adjust xHCI compatible as suggested by Justin & Florian
- keep xHCI disabled in order to let the bootloader decide which
  USB block should be enabled, which result in a drop of patch 3

Stefan Wahren (3):
  dt-bindings: usb: xhci: add support for BCM2711
  usb: xhci: xhci-plat: Add support for BCM2711
  ARM: dts: bcm2711: Add BCM2711 xHCI support

 .../devicetree/bindings/usb/generic-xhci.yaml | 25 ++++++++++++++++---
 arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi   |  5 ++++
 arch/arm/boot/dts/broadcom/bcm2711.dtsi       | 14 +++++++++++
 drivers/usb/host/xhci-plat.c                  |  3 +++
 4 files changed, 44 insertions(+), 3 deletions(-)

--
2.34.1

Comments

Cyril Brulebois Dec. 12, 2023, 7:09 p.m. UTC | #1
Stefan Wahren <wahrenst@gmx.net> (2023-12-05):
> In contrast to the Raspberry Pi 4, the Compute Module 4 or the IO board
> does not have a VL805 USB 3.0 host controller, which is connected via
> PCIe. Instead, the Compute Module provides the built-in
> xHCI of the BCM2711 SoC.
> 
> Changes in V4:
> - use "brcm,xhci-brcm-v2" as fallback compatible as suggested by
>   Conor & Florian
> 
> Changes in V3:
> - introduce a new compatible for BCM2711 in order to make the
>   power domain dependency SoC specific, which also results in
>   a driver change

This is still:

Tested-by: Cyril Brulebois <cyril@debamax.com>


Again, I'm also applying Jim Quinlan's PCIe patch series v8, to be able
to fully test what happens with USB devices, onboard and behind PCIe:
  https://lore.kernel.org/all/20231126201946.ffm3bhg5du2xgztv@mraw.org/

With the following on a CM4 IO Board, with a Samsung flash drive and a
USB keyboard connected to onboard USB ports:
 - CM4 Lite Rev 1.0
 - CM4 8/32 Rev 1.0
 - CM4 4/32 Rev 1.1

and using one of the three PCIe-to-USB boards referenced previously,
connecting another Samsung flash drive on one of its USB ports.

Conclusion: I can see and use onboard USB devices alongside behind-PCIe
USB devices, either with or without adding otg_mode=1 to config.txt.

On a CM4-based product that uses both onboard USB ports and PCIe-to-USB
ports, all USB components still work fine (3 RF adapters, 1 modem), with
or without otg_mode=1.

(All of this is still with a Debian 12 arm64 user space.)


Cheers,
Stefan Wahren Dec. 12, 2023, 7:16 p.m. UTC | #2
Hi Cyril,

Am 12.12.23 um 20:09 schrieb Cyril Brulebois:
> Stefan Wahren <wahrenst@gmx.net> (2023-12-05):
>> In contrast to the Raspberry Pi 4, the Compute Module 4 or the IO board
>> does not have a VL805 USB 3.0 host controller, which is connected via
>> PCIe. Instead, the Compute Module provides the built-in
>> xHCI of the BCM2711 SoC.
>>
>> Changes in V4:
>> - use "brcm,xhci-brcm-v2" as fallback compatible as suggested by
>>    Conor & Florian
>>
>> Changes in V3:
>> - introduce a new compatible for BCM2711 in order to make the
>>    power domain dependency SoC specific, which also results in
>>    a driver change
> This is still:
>
> Tested-by: Cyril Brulebois <cyril@debamax.com>
thank you very much for your efforts. The series has been already
applied by Greg.

https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/log/?h=usb-next
>
>
> Again, I'm also applying Jim Quinlan's PCIe patch series v8, to be able
> to fully test what happens with USB devices, onboard and behind PCIe:
>    https://lore.kernel.org/all/20231126201946.ffm3bhg5du2xgztv@mraw.org/
>
> With the following on a CM4 IO Board, with a Samsung flash drive and a
> USB keyboard connected to onboard USB ports:
>   - CM4 Lite Rev 1.0
>   - CM4 8/32 Rev 1.0
>   - CM4 4/32 Rev 1.1
>
> and using one of the three PCIe-to-USB boards referenced previously,
> connecting another Samsung flash drive on one of its USB ports.
>
> Conclusion: I can see and use onboard USB devices alongside behind-PCIe
> USB devices, either with or without adding otg_mode=1 to config.txt.
>
> On a CM4-based product that uses both onboard USB ports and PCIe-to-USB
> ports, all USB components still work fine (3 RF adapters, 1 modem), with
> or without otg_mode=1.
>
> (All of this is still with a Debian 12 arm64 user space.)
>
>
> Cheers,
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel