[PATCH v2 5/7] phy: uniphier-usb3hs: Change Rx sync mode to avoid communication failure

From: Kunihiko Hayashi
Date: Thu Jan 30 2020 - 01:53:20 EST


In case of using default parameters, communication failure might occur
in rare cases. This sets Rx sync mode parameter to avoid the issue.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx>
---
drivers/phy/socionext/phy-uniphier-usb3hs.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/socionext/phy-uniphier-usb3hs.c b/drivers/phy/socionext/phy-uniphier-usb3hs.c
index bdf696e..a9bc741 100644
--- a/drivers/phy/socionext/phy-uniphier-usb3hs.c
+++ b/drivers/phy/socionext/phy-uniphier-usb3hs.c
@@ -41,10 +41,12 @@

#define PHY_F(regno, msb, lsb) { (regno), (msb), (lsb) }

+#define RX_CHK_SYNC PHY_F(0, 5, 5) /* RX sync mode */
+#define RX_SYNC_SEL PHY_F(1, 1, 0) /* RX sync length */
#define LS_SLEW PHY_F(10, 6, 6) /* LS mode slew rate */
#define FS_LS_DRV PHY_F(10, 5, 5) /* FS/LS slew rate */

-#define MAX_PHY_PARAMS 2
+#define MAX_PHY_PARAMS 4

struct uniphier_u3hsphy_param {
struct {
@@ -395,13 +397,19 @@ static const struct uniphier_u3hsphy_soc_data uniphier_pro5_data = {

static const struct uniphier_u3hsphy_soc_data uniphier_pxs2_data = {
.is_legacy = false,
- .nparams = 0,
+ .nparams = 2,
+ .param = {
+ { RX_CHK_SYNC, 1 },
+ { RX_SYNC_SEL, 1 },
+ },
};

static const struct uniphier_u3hsphy_soc_data uniphier_ld20_data = {
.is_legacy = false,
- .nparams = 2,
+ .nparams = 4,
.param = {
+ { RX_CHK_SYNC, 1 },
+ { RX_SYNC_SEL, 1 },
{ LS_SLEW, 1 },
{ FS_LS_DRV, 1 },
},
@@ -412,7 +420,11 @@ static const struct uniphier_u3hsphy_soc_data uniphier_ld20_data = {

static const struct uniphier_u3hsphy_soc_data uniphier_pxs3_data = {
.is_legacy = false,
- .nparams = 0,
+ .nparams = 2,
+ .param = {
+ { RX_CHK_SYNC, 1 },
+ { RX_SYNC_SEL, 1 },
+ },
.trim_func = uniphier_u3hsphy_trim_ld20,
.config0 = 0x92316680,
.config1 = 0x00000106,
--
2.7.4