linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy
@ 2020-07-09 10:58 Peter Chen
  2020-07-09 10:59 ` [PATCH 2/4] usb: chipidea: imx: add two picophy parameters tuning implementation Peter Chen
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Peter Chen @ 2020-07-09 10:58 UTC (permalink / raw)
  To: shawnguo, robh+dt
  Cc: devicetree, Peter Chen, linux-usb, linux-imx, kernel,
	fabio.estevam, linux-arm-kernel, jun.li

Add two parameters which are used to tune USB signal for imx picophy,
picophy is used at imx7d, imx8mm, and imx8mn.

Reviewed-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
index 51376cbe5f3d..e9858dafb08f 100644
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
@@ -100,6 +100,13 @@ i.mx specific properties
   It's recommended to specify the over current polarity.
 - power-active-high: power signal polarity is active high
 - external-vbus-divider: enables off-chip resistor divider for Vbus
+- picophy,pre-emp-curr-control: HS Transmitter Pre-Emphasis Current
+  Control. This signal controls the amount of current sourced to the
+  USB_OTG*_DP and USB_OTG*_DN pins after a J-to-K or K-to-J transition.
+  Details can refer to TXPREEMPAMPTUNE0 bits of USBNC_n_PHY_CFG1.
+- picophy,dc-vol-level-adjust: HS DC Voltage Level Adjustment.
+  Adjust the high-speed transmitter DC level voltage, details can refer
+  to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
 
 Example:
 
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 2/4] usb: chipidea: imx: add two picophy parameters tuning implementation
  2020-07-09 10:58 [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Peter Chen
@ 2020-07-09 10:59 ` Peter Chen
  2020-07-09 10:59 ` [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning Peter Chen
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Peter Chen @ 2020-07-09 10:59 UTC (permalink / raw)
  To: shawnguo, robh+dt
  Cc: devicetree, Peter Chen, linux-usb, linux-imx, kernel,
	fabio.estevam, linux-arm-kernel, jun.li

These two parameters are used to improve USB signal for board level,
in this commit, we read it from the dtb, and write to related register
during the initialization.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
 drivers/usb/chipidea/ci_hdrc_imx.c |  5 +++++
 drivers/usb/chipidea/ci_hdrc_imx.h |  2 ++
 drivers/usb/chipidea/usbmisc_imx.c | 21 +++++++++++++++++++++
 3 files changed, 28 insertions(+)

diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index 5ae16368a0c7..58de0f3ac0e9 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -165,6 +165,11 @@ static struct imx_usbmisc_data *usbmisc_get_init_data(struct device *dev)
 	if (of_usb_get_phy_mode(np) == USBPHY_INTERFACE_MODE_ULPI)
 		data->ulpi = 1;
 
+	of_property_read_u32(np, "picophy,pre-emp-curr-control",
+			&data->emp_curr_control);
+	of_property_read_u32(np, "picophy,dc-vol-level-adjust",
+			&data->dc_vol_level_adjust);
+
 	return data;
 }
 
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.h b/drivers/usb/chipidea/ci_hdrc_imx.h
index 727d02b6dbd3..367bb0d0cb6b 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.h
+++ b/drivers/usb/chipidea/ci_hdrc_imx.h
@@ -25,6 +25,8 @@ struct imx_usbmisc_data {
 	unsigned int ext_id:1; /* ID from exteranl event */
 	unsigned int ext_vbus:1; /* Vbus from exteranl event */
 	struct usb_phy *usb_phy;
+	int emp_curr_control;
+	int dc_vol_level_adjust;
 };
 
 int imx_usbmisc_init(struct imx_usbmisc_data *data);
diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c
index f136876cb4a3..f9881aed468f 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -128,6 +128,12 @@
 #define MX7D_USB_OTG_PHY_STATUS_VBUS_VLD	BIT(3)
 #define MX7D_USB_OTG_PHY_STATUS_CHRGDET		BIT(29)
 
+#define MX7D_USB_OTG_PHY_CFG1		0x30
+#define TXPREEMPAMPTUNE0_BIT		28
+#define TXPREEMPAMPTUNE0_MASK		(3 << 28)
+#define TXVREFTUNE0_BIT			20
+#define TXVREFTUNE0_MASK		(0xf << 20)
+
 #define MX6_USB_OTG_WAKEUP_BITS (MX6_BM_WAKEUP_ENABLE | MX6_BM_VBUS_WAKEUP | \
 				 MX6_BM_ID_WAKEUP)
 
@@ -649,6 +655,21 @@ static int usbmisc_imx7d_init(struct imx_usbmisc_data *data)
 		writel(reg | MX7D_USB_VBUS_WAKEUP_SOURCE_BVALID
 			| MX7D_USBNC_AUTO_RESUME,
 			usbmisc->base + MX7D_USBNC_USB_CTRL2);
+		/* PHY tuning for signal quality */
+		reg = readl(usbmisc->base + MX7D_USB_OTG_PHY_CFG1);
+		if (data->emp_curr_control && data->emp_curr_control <=
+			(TXPREEMPAMPTUNE0_MASK >> TXPREEMPAMPTUNE0_BIT)) {
+			reg &= ~TXPREEMPAMPTUNE0_MASK;
+			reg |= (data->emp_curr_control << TXPREEMPAMPTUNE0_BIT);
+		}
+
+		if (data->dc_vol_level_adjust && data->dc_vol_level_adjust <=
+			(TXVREFTUNE0_MASK >> TXVREFTUNE0_BIT)) {
+			reg &= ~TXVREFTUNE0_MASK;
+			reg |= (data->dc_vol_level_adjust << TXVREFTUNE0_BIT);
+		}
+
+		writel(reg, usbmisc->base + MX7D_USB_OTG_PHY_CFG1);
 	}
 
 	spin_unlock_irqrestore(&usbmisc->lock, flags);
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning
  2020-07-09 10:58 [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Peter Chen
  2020-07-09 10:59 ` [PATCH 2/4] usb: chipidea: imx: add two picophy parameters tuning implementation Peter Chen
@ 2020-07-09 10:59 ` Peter Chen
  2020-07-13  8:36   ` Shawn Guo
  2020-07-09 10:59 ` [PATCH 4/4] ARM64: dts: fsl: imx8mn-evk: " Peter Chen
  2020-07-13  8:31 ` [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Shawn Guo
  3 siblings, 1 reply; 8+ messages in thread
From: Peter Chen @ 2020-07-09 10:59 UTC (permalink / raw)
  To: shawnguo, robh+dt
  Cc: devicetree, Peter Chen, linux-usb, linux-imx, kernel,
	fabio.estevam, linux-arm-kernel, jun.li

With these two parameters tuning, it can pass USB eye diagram at evk board.

Reviewed-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
index 0f1d7f8aeac4..c432b628e1ed 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
@@ -324,6 +324,8 @@
 	srp-disable;
 	adp-disable;
 	usb-role-switch;
+	picophy,pre-emp-curr-control = <3>;
+	picophy,dc-vol-level-adjust = <7>;
 	status = "okay";
 
 	port {
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 4/4] ARM64: dts: fsl: imx8mn-evk: add two parameters for picophy tuning
  2020-07-09 10:58 [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Peter Chen
  2020-07-09 10:59 ` [PATCH 2/4] usb: chipidea: imx: add two picophy parameters tuning implementation Peter Chen
  2020-07-09 10:59 ` [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning Peter Chen
@ 2020-07-09 10:59 ` Peter Chen
  2020-07-13  8:31 ` [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Shawn Guo
  3 siblings, 0 replies; 8+ messages in thread
From: Peter Chen @ 2020-07-09 10:59 UTC (permalink / raw)
  To: shawnguo, robh+dt
  Cc: devicetree, Peter Chen, linux-usb, linux-imx, kernel,
	fabio.estevam, linux-arm-kernel, jun.li

With these two parameters tuning, it can pass USB eye diagram at evk board.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
index 85fc0aa38c4f..a6e9035e6cd5 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
@@ -132,6 +132,8 @@
 	srp-disable;
 	adp-disable;
 	usb-role-switch;
+	picophy,pre-emp-curr-control = <3>;
+	picophy,dc-vol-level-adjust = <7>;
 	status = "okay";
 
 	port {
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy
  2020-07-09 10:58 [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Peter Chen
                   ` (2 preceding siblings ...)
  2020-07-09 10:59 ` [PATCH 4/4] ARM64: dts: fsl: imx8mn-evk: " Peter Chen
@ 2020-07-13  8:31 ` Shawn Guo
  2020-07-13  8:38   ` Peter Chen
  3 siblings, 1 reply; 8+ messages in thread
From: Shawn Guo @ 2020-07-13  8:31 UTC (permalink / raw)
  To: Peter Chen
  Cc: devicetree, linux-usb, robh+dt, linux-imx, kernel, fabio.estevam,
	linux-arm-kernel, jun.li

On Thu, Jul 09, 2020 at 06:58:59PM +0800, Peter Chen wrote:
> Add two parameters which are used to tune USB signal for imx picophy,
> picophy is used at imx7d, imx8mm, and imx8mn.
> 
> Reviewed-by: Jun Li <jun.li@nxp.com>
> Signed-off-by: Peter Chen <peter.chen@nxp.com>
> ---
>  Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> index 51376cbe5f3d..e9858dafb08f 100644
> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> @@ -100,6 +100,13 @@ i.mx specific properties
>    It's recommended to specify the over current polarity.
>  - power-active-high: power signal polarity is active high
>  - external-vbus-divider: enables off-chip resistor divider for Vbus
> +- picophy,pre-emp-curr-control: HS Transmitter Pre-Emphasis Current

'picophy' should be documented in vendor-prefixes.yaml?

Shawn

> +  Control. This signal controls the amount of current sourced to the
> +  USB_OTG*_DP and USB_OTG*_DN pins after a J-to-K or K-to-J transition.
> +  Details can refer to TXPREEMPAMPTUNE0 bits of USBNC_n_PHY_CFG1.
> +- picophy,dc-vol-level-adjust: HS DC Voltage Level Adjustment.
> +  Adjust the high-speed transmitter DC level voltage, details can refer
> +  to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
>  
>  Example:
>  
> -- 
> 2.17.1
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning
  2020-07-09 10:59 ` [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning Peter Chen
@ 2020-07-13  8:36   ` Shawn Guo
  2020-07-13  8:40     ` Peter Chen
  0 siblings, 1 reply; 8+ messages in thread
From: Shawn Guo @ 2020-07-13  8:36 UTC (permalink / raw)
  To: Peter Chen
  Cc: devicetree, linux-usb, robh+dt, linux-imx, kernel, fabio.estevam,
	linux-arm-kernel, jun.li

On Thu, Jul 09, 2020 at 06:59:01PM +0800, Peter Chen wrote:
> With these two parameters tuning, it can pass USB eye diagram at evk board.
> 
> Reviewed-by: Jun Li <jun.li@nxp.com>
> Signed-off-by: Peter Chen <peter.chen@nxp.com>

It's not so consistent, but idiomatically we prefix arm i.MX
platform/dts patches like 'ARM: ...', but 'arm64: ...' for arm64 ones.
Also with 'imx8mm-evk' in prefix, it's good enough to know this is
fsl/imx patch, so I suggest prefix like:

 'arm64: dts: imx8mm-evk: ...'

Shawn

> ---
>  arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
> index 0f1d7f8aeac4..c432b628e1ed 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
> @@ -324,6 +324,8 @@
>  	srp-disable;
>  	adp-disable;
>  	usb-role-switch;
> +	picophy,pre-emp-curr-control = <3>;
> +	picophy,dc-vol-level-adjust = <7>;
>  	status = "okay";
>  
>  	port {
> -- 
> 2.17.1
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* RE: [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy
  2020-07-13  8:31 ` [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Shawn Guo
@ 2020-07-13  8:38   ` Peter Chen
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Chen @ 2020-07-13  8:38 UTC (permalink / raw)
  To: Shawn Guo
  Cc: devicetree, linux-usb, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, linux-arm-kernel, Jun Li

 
> > ---
> >  Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> > b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> > index 51376cbe5f3d..e9858dafb08f 100644
> > --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> > +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> > @@ -100,6 +100,13 @@ i.mx specific properties
> >    It's recommended to specify the over current polarity.
> >  - power-active-high: power signal polarity is active high
> >  - external-vbus-divider: enables off-chip resistor divider for Vbus
> > +- picophy,pre-emp-curr-control: HS Transmitter Pre-Emphasis Current
> 
> 'picophy' should be documented in vendor-prefixes.yaml?
> 

For chipidea binding doc, there is no vendor specific doc, only there are vendor
specific parts in general binding doc.

Peter


> Shawn
> 
> > +  Control. This signal controls the amount of current sourced to the
> > +  USB_OTG*_DP and USB_OTG*_DN pins after a J-to-K or K-to-J transition.
> > +  Details can refer to TXPREEMPAMPTUNE0 bits of USBNC_n_PHY_CFG1.
> > +- picophy,dc-vol-level-adjust: HS DC Voltage Level Adjustment.
> > +  Adjust the high-speed transmitter DC level voltage, details can
> > +refer
> > +  to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
> >
> >  Example:
> >
> > --
> > 2.17.1
> >

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* RE: [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning
  2020-07-13  8:36   ` Shawn Guo
@ 2020-07-13  8:40     ` Peter Chen
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Chen @ 2020-07-13  8:40 UTC (permalink / raw)
  To: Shawn Guo
  Cc: devicetree, linux-usb, robh+dt, dl-linux-imx, kernel,
	Fabio Estevam, linux-arm-kernel, Jun Li

 
> > Reviewed-by: Jun Li <jun.li@nxp.com>
> > Signed-off-by: Peter Chen <peter.chen@nxp.com>
> 
> It's not so consistent, but idiomatically we prefix arm i.MX platform/dts patches like
> 'ARM: ...', but 'arm64: ...' for arm64 ones.
> Also with 'imx8mm-evk' in prefix, it's good enough to know this is fsl/imx patch, so I
> suggest prefix like:
> 
>  'arm64: dts: imx8mm-evk: ...'
> 
 
Thanks, will change.

Peter

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2020-07-13  8:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09 10:58 [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Peter Chen
2020-07-09 10:59 ` [PATCH 2/4] usb: chipidea: imx: add two picophy parameters tuning implementation Peter Chen
2020-07-09 10:59 ` [PATCH 3/4] ARM64: dts: fsl: imx8mm-evk: add two parameters for picophy tuning Peter Chen
2020-07-13  8:36   ` Shawn Guo
2020-07-13  8:40     ` Peter Chen
2020-07-09 10:59 ` [PATCH 4/4] ARM64: dts: fsl: imx8mn-evk: " Peter Chen
2020-07-13  8:31 ` [PATCH 1/4] doc: dt-binding: ci-hdrc-usb2: add property for imx picophy Shawn Guo
2020-07-13  8:38   ` Peter Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).