mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-26 06:33:19 -04:00
Add HS phy init sequence dtsi for Host
Add HS phy init sequence for Host mode to support configure the HS phy parameters for Host and Device mode separately from device tree. Change-Id: Ia532d638c6e32377be9c4062f63f0cf227d55d2c Signed-off-by: Yonghua Yan <yanyh2@motorola.com> Reviewed-on: https://gerrit.mot.com/2605855 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Guobin Zhang <zhanggb@motorola.com> Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/2677516 Reviewed-by: Zonghua Liu <a17671@motorola.com> Reviewed-by: Yeqing Wang <wangyq13@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com>
This commit is contained in:
parent
a5ae1d0a5a
commit
f210f91a8a
1 changed files with 37 additions and 1 deletions
|
|
@ -114,6 +114,9 @@ struct msm_hsphy {
|
|||
int *param_override_seq;
|
||||
int param_override_seq_cnt;
|
||||
|
||||
int *host_param_override_seq;
|
||||
int host_param_override_seq_cnt;
|
||||
|
||||
void __iomem *phy_rcal_reg;
|
||||
u32 rcal_mask;
|
||||
|
||||
|
|
@ -397,9 +400,14 @@ static int msm_hsphy_init(struct usb_phy *uphy)
|
|||
VBUSVLDEXT0, VBUSVLDEXT0);
|
||||
|
||||
/* set parameter ovrride if needed */
|
||||
if (phy->param_override_seq)
|
||||
if ((phy->phy.flags & PHY_HOST_MODE) &&
|
||||
phy->host_param_override_seq) {
|
||||
hsusb_phy_write_seq(phy->base, phy->host_param_override_seq,
|
||||
phy->host_param_override_seq_cnt, 0);
|
||||
} else if (phy->param_override_seq) {
|
||||
hsusb_phy_write_seq(phy->base, phy->param_override_seq,
|
||||
phy->param_override_seq_cnt, 0);
|
||||
}
|
||||
|
||||
if (phy->pre_emphasis) {
|
||||
u8 val = TXPREEMPAMPTUNE0(phy->pre_emphasis) &
|
||||
|
|
@ -823,6 +831,34 @@ static int msm_hsphy_probe(struct platform_device *pdev)
|
|||
if (IS_ERR(phy->phy_reset))
|
||||
return PTR_ERR(phy->phy_reset);
|
||||
|
||||
phy->host_param_override_seq_cnt = of_property_count_elems_of_size(
|
||||
dev->of_node,
|
||||
"qcom,host-param-override-seq",
|
||||
sizeof(*phy->host_param_override_seq));
|
||||
if (phy->host_param_override_seq_cnt > 0) {
|
||||
phy->host_param_override_seq = devm_kcalloc(dev,
|
||||
phy->host_param_override_seq_cnt,
|
||||
sizeof(*phy->host_param_override_seq),
|
||||
GFP_KERNEL);
|
||||
if (!phy->host_param_override_seq)
|
||||
return -ENOMEM;
|
||||
|
||||
if (phy->host_param_override_seq_cnt % 2) {
|
||||
dev_err(dev, "invalid host_param_override_seq_len\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = of_property_read_u32_array(dev->of_node,
|
||||
"qcom,host-param-override-seq",
|
||||
phy->host_param_override_seq,
|
||||
phy->host_param_override_seq_cnt);
|
||||
if (ret) {
|
||||
dev_err(dev, "qcom,host_param-override-seq read failed %d\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
phy->param_override_seq_cnt = of_property_count_elems_of_size(
|
||||
dev->of_node,
|
||||
"qcom,param-override-seq",
|
||||
|
|
|
|||
Loading…
Reference in a new issue