Lines Matching full:instance
324 struct mtk_phy_instance *instance) in hs_slew_rate_calibrate() argument
326 struct u2phy_banks *u2_banks = &instance->u2_banks; in hs_slew_rate_calibrate()
334 if (instance->eye_src) in hs_slew_rate_calibrate()
353 tmp |= P2F_RG_MONCLK_SEL_VAL(instance->index >> 1); in hs_slew_rate_calibrate()
388 instance->index, fm_out, calibration_val, in hs_slew_rate_calibrate()
404 struct mtk_phy_instance *instance) in u3_phy_instance_init() argument
406 struct u3phy_banks *u3_banks = &instance->u3_banks; in u3_phy_instance_init()
450 dev_dbg(tphy->dev, "%s(%d)\n", __func__, instance->index); in u3_phy_instance_init()
454 struct mtk_phy_instance *instance) in u2_phy_instance_init() argument
456 struct u2phy_banks *u2_banks = &instance->u2_banks; in u2_phy_instance_init()
458 u32 index = instance->index; in u2_phy_instance_init()
516 struct mtk_phy_instance *instance) in u2_phy_instance_power_on() argument
518 struct u2phy_banks *u2_banks = &instance->u2_banks; in u2_phy_instance_power_on()
520 u32 index = instance->index; in u2_phy_instance_power_on()
550 struct mtk_phy_instance *instance) in u2_phy_instance_power_off() argument
552 struct u2phy_banks *u2_banks = &instance->u2_banks; in u2_phy_instance_power_off()
554 u32 index = instance->index; in u2_phy_instance_power_off()
585 struct mtk_phy_instance *instance) in u2_phy_instance_exit() argument
587 struct u2phy_banks *u2_banks = &instance->u2_banks; in u2_phy_instance_exit()
589 u32 index = instance->index; in u2_phy_instance_exit()
604 struct mtk_phy_instance *instance, in u2_phy_instance_set_mode() argument
607 struct u2phy_banks *u2_banks = &instance->u2_banks; in u2_phy_instance_set_mode()
629 struct mtk_phy_instance *instance) in pcie_phy_instance_init() argument
631 struct u3phy_banks *u3_banks = &instance->u3_banks; in pcie_phy_instance_init()
698 dev_dbg(tphy->dev, "%s(%d)\n", __func__, instance->index); in pcie_phy_instance_init()
702 struct mtk_phy_instance *instance) in pcie_phy_instance_power_on() argument
704 struct u3phy_banks *bank = &instance->u3_banks; in pcie_phy_instance_power_on()
717 struct mtk_phy_instance *instance) in pcie_phy_instance_power_off() argument
720 struct u3phy_banks *bank = &instance->u3_banks; in pcie_phy_instance_power_off()
733 struct mtk_phy_instance *instance) in sata_phy_instance_init() argument
735 struct u3phy_banks *u3_banks = &instance->u3_banks; in sata_phy_instance_init()
787 dev_dbg(tphy->dev, "%s(%d)\n", __func__, instance->index); in sata_phy_instance_init()
791 struct mtk_phy_instance *instance) in phy_v1_banks_init() argument
793 struct u2phy_banks *u2_banks = &instance->u2_banks; in phy_v1_banks_init()
794 struct u3phy_banks *u3_banks = &instance->u3_banks; in phy_v1_banks_init()
796 switch (instance->type) { in phy_v1_banks_init()
800 u2_banks->com = instance->port_base + SSUSB_SIFSLV_V1_U2PHY_COM; in phy_v1_banks_init()
806 u3_banks->phyd = instance->port_base + SSUSB_SIFSLV_V1_U3PHYD; in phy_v1_banks_init()
807 u3_banks->phya = instance->port_base + SSUSB_SIFSLV_V1_U3PHYA; in phy_v1_banks_init()
810 u3_banks->phyd = instance->port_base + SSUSB_SIFSLV_V1_U3PHYD; in phy_v1_banks_init()
819 struct mtk_phy_instance *instance) in phy_v2_banks_init() argument
821 struct u2phy_banks *u2_banks = &instance->u2_banks; in phy_v2_banks_init()
822 struct u3phy_banks *u3_banks = &instance->u3_banks; in phy_v2_banks_init()
824 switch (instance->type) { in phy_v2_banks_init()
826 u2_banks->misc = instance->port_base + SSUSB_SIFSLV_V2_MISC; in phy_v2_banks_init()
827 u2_banks->fmreg = instance->port_base + SSUSB_SIFSLV_V2_U2FREQ; in phy_v2_banks_init()
828 u2_banks->com = instance->port_base + SSUSB_SIFSLV_V2_U2PHY_COM; in phy_v2_banks_init()
832 u3_banks->spllc = instance->port_base + SSUSB_SIFSLV_V2_SPLLC; in phy_v2_banks_init()
833 u3_banks->chip = instance->port_base + SSUSB_SIFSLV_V2_CHIP; in phy_v2_banks_init()
834 u3_banks->phyd = instance->port_base + SSUSB_SIFSLV_V2_U3PHYD; in phy_v2_banks_init()
835 u3_banks->phya = instance->port_base + SSUSB_SIFSLV_V2_U3PHYA; in phy_v2_banks_init()
844 struct mtk_phy_instance *instance) in phy_parse_property() argument
846 struct device *dev = &instance->phy->dev; in phy_parse_property()
848 if (instance->type != PHY_TYPE_USB2) in phy_parse_property()
851 instance->bc12_en = device_property_read_bool(dev, "mediatek,bc12"); in phy_parse_property()
853 &instance->eye_src); in phy_parse_property()
855 &instance->eye_vrt); in phy_parse_property()
857 &instance->eye_term); in phy_parse_property()
859 &instance->intr); in phy_parse_property()
861 &instance->discth); in phy_parse_property()
863 instance->bc12_en, instance->eye_src, in phy_parse_property()
864 instance->eye_vrt, instance->eye_term, in phy_parse_property()
865 instance->intr, instance->discth); in phy_parse_property()
869 struct mtk_phy_instance *instance) in u2_phy_props_set() argument
871 struct u2phy_banks *u2_banks = &instance->u2_banks; in u2_phy_props_set()
875 if (instance->bc12_en) { in u2_phy_props_set()
881 if (instance->eye_src) { in u2_phy_props_set()
884 tmp |= PA5_RG_U2_HSTX_SRCTRL_VAL(instance->eye_src); in u2_phy_props_set()
888 if (instance->eye_vrt) { in u2_phy_props_set()
891 tmp |= PA1_RG_VRT_SEL_VAL(instance->eye_vrt); in u2_phy_props_set()
895 if (instance->eye_term) { in u2_phy_props_set()
898 tmp |= PA1_RG_TERM_SEL_VAL(instance->eye_term); in u2_phy_props_set()
902 if (instance->intr) { in u2_phy_props_set()
905 tmp |= PA1_RG_INTR_CAL_VAL(instance->intr); in u2_phy_props_set()
909 if (instance->discth) { in u2_phy_props_set()
912 tmp |= PA6_RG_U2_DISCTH_VAL(instance->discth); in u2_phy_props_set()
919 struct mtk_phy_instance *instance = phy_get_drvdata(phy); in mtk_phy_init() local
923 ret = clk_prepare_enable(instance->ref_clk); in mtk_phy_init()
929 ret = clk_prepare_enable(instance->da_ref_clk); in mtk_phy_init()
932 clk_disable_unprepare(instance->ref_clk); in mtk_phy_init()
936 switch (instance->type) { in mtk_phy_init()
938 u2_phy_instance_init(tphy, instance); in mtk_phy_init()
939 u2_phy_props_set(tphy, instance); in mtk_phy_init()
942 u3_phy_instance_init(tphy, instance); in mtk_phy_init()
945 pcie_phy_instance_init(tphy, instance); in mtk_phy_init()
948 sata_phy_instance_init(tphy, instance); in mtk_phy_init()
960 struct mtk_phy_instance *instance = phy_get_drvdata(phy); in mtk_phy_power_on() local
963 if (instance->type == PHY_TYPE_USB2) { in mtk_phy_power_on()
964 u2_phy_instance_power_on(tphy, instance); in mtk_phy_power_on()
965 hs_slew_rate_calibrate(tphy, instance); in mtk_phy_power_on()
966 } else if (instance->type == PHY_TYPE_PCIE) { in mtk_phy_power_on()
967 pcie_phy_instance_power_on(tphy, instance); in mtk_phy_power_on()
975 struct mtk_phy_instance *instance = phy_get_drvdata(phy); in mtk_phy_power_off() local
978 if (instance->type == PHY_TYPE_USB2) in mtk_phy_power_off()
979 u2_phy_instance_power_off(tphy, instance); in mtk_phy_power_off()
980 else if (instance->type == PHY_TYPE_PCIE) in mtk_phy_power_off()
981 pcie_phy_instance_power_off(tphy, instance); in mtk_phy_power_off()
988 struct mtk_phy_instance *instance = phy_get_drvdata(phy); in mtk_phy_exit() local
991 if (instance->type == PHY_TYPE_USB2) in mtk_phy_exit()
992 u2_phy_instance_exit(tphy, instance); in mtk_phy_exit()
994 clk_disable_unprepare(instance->ref_clk); in mtk_phy_exit()
995 clk_disable_unprepare(instance->da_ref_clk); in mtk_phy_exit()
1001 struct mtk_phy_instance *instance = phy_get_drvdata(phy); in mtk_phy_set_mode() local
1004 if (instance->type == PHY_TYPE_USB2) in mtk_phy_set_mode()
1005 u2_phy_instance_set_mode(tphy, instance, mode); in mtk_phy_set_mode()
1014 struct mtk_phy_instance *instance = NULL; in mtk_phy_xlate() local
1025 instance = tphy->phys[index]; in mtk_phy_xlate()
1029 if (!instance) { in mtk_phy_xlate()
1034 instance->type = args->args[0]; in mtk_phy_xlate()
1035 if (!(instance->type == PHY_TYPE_USB2 || in mtk_phy_xlate()
1036 instance->type == PHY_TYPE_USB3 || in mtk_phy_xlate()
1037 instance->type == PHY_TYPE_PCIE || in mtk_phy_xlate()
1038 instance->type == PHY_TYPE_SATA)) { in mtk_phy_xlate()
1039 dev_err(dev, "unsupported device type: %d\n", instance->type); in mtk_phy_xlate()
1044 phy_v1_banks_init(tphy, instance); in mtk_phy_xlate()
1046 phy_v2_banks_init(tphy, instance); in mtk_phy_xlate()
1052 phy_parse_property(tphy, instance); in mtk_phy_xlate()
1054 return instance->phy; in mtk_phy_xlate()
1139 struct mtk_phy_instance *instance; in mtk_tphy_probe() local
1142 instance = devm_kzalloc(dev, sizeof(*instance), GFP_KERNEL); in mtk_tphy_probe()
1143 if (!instance) { in mtk_tphy_probe()
1148 tphy->phys[port] = instance; in mtk_tphy_probe()
1164 instance->port_base = devm_ioremap_resource(&phy->dev, &res); in mtk_tphy_probe()
1165 if (IS_ERR(instance->port_base)) { in mtk_tphy_probe()
1167 retval = PTR_ERR(instance->port_base); in mtk_tphy_probe()
1171 instance->phy = phy; in mtk_tphy_probe()
1172 instance->index = port; in mtk_tphy_probe()
1173 phy_set_drvdata(phy, instance); in mtk_tphy_probe()
1176 instance->ref_clk = devm_clk_get_optional(&phy->dev, "ref"); in mtk_tphy_probe()
1177 if (IS_ERR(instance->ref_clk)) { in mtk_tphy_probe()
1179 retval = PTR_ERR(instance->ref_clk); in mtk_tphy_probe()
1183 instance->da_ref_clk = in mtk_tphy_probe()
1185 if (IS_ERR(instance->da_ref_clk)) { in mtk_tphy_probe()
1187 retval = PTR_ERR(instance->da_ref_clk); in mtk_tphy_probe()