mbox series

[v2,0/3] i.MX8MP: more USB3 glue layer feature support

Message ID 20211216160541.544974-1-alexander.stein@ew.tq-group.com
Headers show
Series i.MX8MP: more USB3 glue layer feature support | expand

Message

Alexander Stein Dec. 16, 2021, 4:05 p.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.

Thanks for any feedback and best regards,
Alexander

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

 .../bindings/phy/fsl,imx8mq-usb-phy.yaml      | 52 +++++++++++++++-
 arch/arm64/boot/dts/freescale/imx8mp.dtsi     |  6 +-
 drivers/phy/freescale/phy-fsl-imx8mq-usb.c    | 61 +++++++++++++++++++
 3 files changed, 116 insertions(+), 3 deletions(-)

Comments

Jun Li Dec. 22, 2021, 3:18 a.m. UTC | #1
> -----Original Message-----
> From: Alexander Stein <alexander.stein@ew.tq-group.com>
> Sent: Friday, December 17, 2021 12:06 AM
> To: Kishon Vijay Abraham I <kishon@ti.com>; Vinod Koul <vkoul@kernel.org>;
> Rob Herring <robh+dt@kernel.org>; Shawn Guo <shawnguo@kernel.org>; Sascha
> Hauer <s.hauer@pengutronix.de>; Fabio Estevam <festevam@gmail.com>
> Cc: Alexander Stein <alexander.stein@ew.tq-group.com>; dl-linux-imx
> <linux-imx@nxp.com>; linux-phy@lists.infradead.org;
> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> Subject: [PATCH v2 0/3] i.MX8MP: more USB3 glue layer feature support
> 
> 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.
> 
> Thanks for any feedback and best regards, Alexander

Which driver handle what function is decided by the driver *function*,
not where the actual HW logic is located, iMX8MP do have a "glue" layer
in SoC HW, some part is for phy config, and some part is for controller,
so we need put the part of phy config into the phy driver, the changes
you are adding is for controller so should be put in dwc3-imx8mp.c from
my point view.

Li Jun 
 
> 
> Alexander Stein (3):
>   dt-bindings: phy: imx8mq-usb-phy: Add imx8mp specific flags
>   phy: fsl-imx8mq-usb: Add support for setting fsl specific flags
>   arm64: dts: imx8mp: Add memory for USB3 glue layer to usb3_phy nodes
> 
>  .../bindings/phy/fsl,imx8mq-usb-phy.yaml      | 52 +++++++++++++++-
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi     |  6 +-
>  drivers/phy/freescale/phy-fsl-imx8mq-usb.c    | 61 +++++++++++++++++++
>  3 files changed, 116 insertions(+), 3 deletions(-)
> 
> --
> 2.25.1
Alexander Stein Jan. 7, 2022, 1:43 p.m. UTC | #2
Hi,

Am Mittwoch, 22. Dezember 2021, 04:18:57 CET schrieb Jun Li:
> > -----Original Message-----
> > From: Alexander Stein <alexander.stein@ew.tq-group.com>
> > Sent: Friday, December 17, 2021 12:06 AM
> > To: Kishon Vijay Abraham I <kishon@ti.com>; Vinod Koul <vkoul@kernel.org>;
> > Rob Herring <robh+dt@kernel.org>; Shawn Guo <shawnguo@kernel.org>; Sascha
> > Hauer <s.hauer@pengutronix.de>; Fabio Estevam <festevam@gmail.com>
> > Cc: Alexander Stein <alexander.stein@ew.tq-group.com>; dl-linux-imx
> > <linux-imx@nxp.com>; linux-phy@lists.infradead.org;
> > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> > Subject: [PATCH v2 0/3] i.MX8MP: more USB3 glue layer feature support
> > 
> > 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.
> > 
> > Thanks for any feedback and best regards, Alexander
> 
> Which driver handle what function is decided by the driver *function*,
> not where the actual HW logic is located, iMX8MP do have a "glue" layer
> in SoC HW, some part is for phy config, and some part is for controller,
> so we need put the part of phy config into the phy driver, the changes
> you are adding is for controller so should be put in dwc3-imx8mp.c from
> my point view.

Thanks for that feedback. This makes things clearer to me.
Yes, dwc3-imx8mp.c seems the right place for that. I'll do that.

Best regards,
Alexander