mbox series

[RFC,0/2] i.MX8MP: more USB3 glue layer feature support

Message ID 20211125104104.1416523-1-alexander.stein@ew.tq-group.com (mailing list archive)
Headers show
Series i.MX8MP: more USB3 glue layer feature support | expand

Message

Alexander Stein Nov. 25, 2021, 10:41 a.m. UTC
This patchset aims to support flags for e.g. over-current active low or port
permanantly attached which are provided in the USB3 glue layer.

There is already a glue layer driver dwc3-imx8mp, but unfortunately this driver
does not use the glue area at all, it only handles wakeup-support which is
done in the HSIO BLK_CTRL area (0x32f10100), accordingly the driver only uses
the hsio clock.

The driver which actually uses the USB3 glue area is phy-fsl-imx8mq-usb. As the
name indicates PHY is configured in the corresponding registers, which are part
of the USB3 glue layer.

This make is it unclear for me which driver should handle the required features
above.
dwc3-imx8mp, the glue layer driver, does not touch the glue area at all,
but the HSIO BLK_CTRL area.
phy-fsl-imx8mq-usb only touches the PHY registers in the glue layer.
Neither does map the USB3 control register from the glue layer.

I would like to get some feedback which approach should be done. The proposed
patchset adds the support to the PHY driver for the simple reason, that phy
clock is already used. Although semantically the glue layer driver makes more
sense.
In either case there is need for additional memory areas (and possibly clocks)
which need to be made optional to support previously released device trees.
I actually don't know what's the best way to add (optional) support for new
memory areas in DT/drivers.

Thanks for any feedback and best regards,
Alexander

Alexander Stein (2):
  phy: fsl-imx8mq-usb: Add support for setting fsl specific flags
  arm64: dts: imx8mp: Add memory for USB3 glue layer to usb3_phy nodes

 arch/arm64/boot/dts/freescale/imx8mp.dtsi  |  6 ++-
 drivers/phy/freescale/phy-fsl-imx8mq-usb.c | 60 ++++++++++++++++++++++
 2 files changed, 64 insertions(+), 2 deletions(-)