Loading drivers/usb/phy/phy-msm-snps-hs.c +42 −0 Original line number Diff line number Diff line Loading @@ -70,8 +70,12 @@ #define TXPREEMPAMPTUNE0(x) (x << 6) #define TXPREEMPAMPTUNE0_MASK (BIT(7) | BIT(6)) #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X0 0x6c #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X1 0x70 #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X2 0x74 #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X3 0x78 #define TXVREFTUNE0_MASK 0xF #define PARAM_OVRD_MASK 0xFF #define USB_HSPHY_3P3_VOL_MIN 3050000 /* uV */ #define USB_HSPHY_3P3_VOL_MAX 3300000 /* uV */ Loading Loading @@ -122,6 +126,10 @@ struct msm_hsphy { struct dentry *root; u8 txvref_tune0; u8 pre_emphasis; u8 param_ovrd0; u8 param_ovrd1; u8 param_ovrd2; u8 param_ovrd3; }; static void msm_hsphy_enable_clocks(struct msm_hsphy *phy, bool on) Loading Loading @@ -426,6 +434,36 @@ static int msm_hsphy_init(struct usb_phy *uphy) TXVREFTUNE0_MASK, val); } if (phy->param_ovrd0) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X0, PARAM_OVRD_MASK, phy->param_ovrd0); } if (phy->param_ovrd1) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X1, PARAM_OVRD_MASK, phy->param_ovrd1); } if (phy->param_ovrd2) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X2, PARAM_OVRD_MASK, phy->param_ovrd2); } if (phy->param_ovrd3) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X3, PARAM_OVRD_MASK, phy->param_ovrd3); } dev_dbg(uphy->dev, "x0:%08x x1:%08x x2:%08x x3:%08x\n", readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X0), readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X1), readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X2), readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X3)); if (phy->phy_rcal_reg) { rcal_code = readl_relaxed(phy->phy_rcal_reg) & phy->rcal_mask; Loading Loading @@ -626,6 +664,10 @@ static void msm_hsphy_create_debugfs(struct msm_hsphy *phy) phy->root = debugfs_create_dir(dev_name(phy->phy.dev), NULL); debugfs_create_x8("pre_emphasis", 0644, phy->root, &phy->pre_emphasis); debugfs_create_x8("txvref_tune0", 0644, phy->root, &phy->txvref_tune0); debugfs_create_x8("param_ovrd0", 0644, phy->root, &phy->param_ovrd0); debugfs_create_x8("param_ovrd1", 0644, phy->root, &phy->param_ovrd1); debugfs_create_x8("param_ovrd2", 0644, phy->root, &phy->param_ovrd2); debugfs_create_x8("param_ovrd3", 0644, phy->root, &phy->param_ovrd3); } static int msm_hsphy_probe(struct platform_device *pdev) Loading Loading
drivers/usb/phy/phy-msm-snps-hs.c +42 −0 Original line number Diff line number Diff line Loading @@ -70,8 +70,12 @@ #define TXPREEMPAMPTUNE0(x) (x << 6) #define TXPREEMPAMPTUNE0_MASK (BIT(7) | BIT(6)) #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X0 0x6c #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X1 0x70 #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X2 0x74 #define USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X3 0x78 #define TXVREFTUNE0_MASK 0xF #define PARAM_OVRD_MASK 0xFF #define USB_HSPHY_3P3_VOL_MIN 3050000 /* uV */ #define USB_HSPHY_3P3_VOL_MAX 3300000 /* uV */ Loading Loading @@ -122,6 +126,10 @@ struct msm_hsphy { struct dentry *root; u8 txvref_tune0; u8 pre_emphasis; u8 param_ovrd0; u8 param_ovrd1; u8 param_ovrd2; u8 param_ovrd3; }; static void msm_hsphy_enable_clocks(struct msm_hsphy *phy, bool on) Loading Loading @@ -426,6 +434,36 @@ static int msm_hsphy_init(struct usb_phy *uphy) TXVREFTUNE0_MASK, val); } if (phy->param_ovrd0) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X0, PARAM_OVRD_MASK, phy->param_ovrd0); } if (phy->param_ovrd1) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X1, PARAM_OVRD_MASK, phy->param_ovrd1); } if (phy->param_ovrd2) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X2, PARAM_OVRD_MASK, phy->param_ovrd2); } if (phy->param_ovrd3) { msm_usb_write_readback(phy->base, USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X3, PARAM_OVRD_MASK, phy->param_ovrd3); } dev_dbg(uphy->dev, "x0:%08x x1:%08x x2:%08x x3:%08x\n", readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X0), readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X1), readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X2), readl_relaxed(phy->base + USB2PHY_USB_PHY_PARAMETER_OVERRIDE_X3)); if (phy->phy_rcal_reg) { rcal_code = readl_relaxed(phy->phy_rcal_reg) & phy->rcal_mask; Loading Loading @@ -626,6 +664,10 @@ static void msm_hsphy_create_debugfs(struct msm_hsphy *phy) phy->root = debugfs_create_dir(dev_name(phy->phy.dev), NULL); debugfs_create_x8("pre_emphasis", 0644, phy->root, &phy->pre_emphasis); debugfs_create_x8("txvref_tune0", 0644, phy->root, &phy->txvref_tune0); debugfs_create_x8("param_ovrd0", 0644, phy->root, &phy->param_ovrd0); debugfs_create_x8("param_ovrd1", 0644, phy->root, &phy->param_ovrd1); debugfs_create_x8("param_ovrd2", 0644, phy->root, &phy->param_ovrd2); debugfs_create_x8("param_ovrd3", 0644, phy->root, &phy->param_ovrd3); } static int msm_hsphy_probe(struct platform_device *pdev) Loading