Lines Matching refs:p_phy
57 struct pistachio_usb_phy *p_phy = phy_get_drvdata(phy); in pistachio_usb_phy_power_on() local
62 ret = clk_prepare_enable(p_phy->phy_clk); in pistachio_usb_phy_power_on()
64 dev_err(p_phy->dev, "Failed to enable PHY clock: %d\n", ret); in pistachio_usb_phy_power_on()
68 regmap_update_bits(p_phy->cr_top, USB_PHY_STRAP_CONTROL, in pistachio_usb_phy_power_on()
71 p_phy->refclk << USB_PHY_STRAP_CONTROL_REFCLK_SHIFT); in pistachio_usb_phy_power_on()
73 rate = clk_get_rate(p_phy->phy_clk); in pistachio_usb_phy_power_on()
74 if (p_phy->refclk == REFCLK_XO_CRYSTAL && rate != 12000000) { in pistachio_usb_phy_power_on()
75 dev_err(p_phy->dev, "Unsupported rate for XO crystal: %ld\n", in pistachio_usb_phy_power_on()
86 dev_err(p_phy->dev, "Unsupported clock rate: %lu\n", rate); in pistachio_usb_phy_power_on()
91 regmap_update_bits(p_phy->cr_top, USB_PHY_CONTROL1, in pistachio_usb_phy_power_on()
100 regmap_read(p_phy->cr_top, USB_PHY_STATUS, &val); in pistachio_usb_phy_power_on()
102 dev_err(p_phy->dev, "VBUS fault detected\n"); in pistachio_usb_phy_power_on()
112 dev_err(p_phy->dev, "Timed out waiting for PHY to power on\n"); in pistachio_usb_phy_power_on()
116 clk_disable_unprepare(p_phy->phy_clk); in pistachio_usb_phy_power_on()
122 struct pistachio_usb_phy *p_phy = phy_get_drvdata(phy); in pistachio_usb_phy_power_off() local
124 clk_disable_unprepare(p_phy->phy_clk); in pistachio_usb_phy_power_off()
137 struct pistachio_usb_phy *p_phy; in pistachio_usb_phy_probe() local
142 p_phy = devm_kzalloc(&pdev->dev, sizeof(*p_phy), GFP_KERNEL); in pistachio_usb_phy_probe()
143 if (!p_phy) in pistachio_usb_phy_probe()
145 p_phy->dev = &pdev->dev; in pistachio_usb_phy_probe()
146 platform_set_drvdata(pdev, p_phy); in pistachio_usb_phy_probe()
148 p_phy->cr_top = syscon_regmap_lookup_by_phandle(p_phy->dev->of_node, in pistachio_usb_phy_probe()
150 if (IS_ERR(p_phy->cr_top)) { in pistachio_usb_phy_probe()
151 dev_err(p_phy->dev, "Failed to get CR_TOP registers: %ld\n", in pistachio_usb_phy_probe()
152 PTR_ERR(p_phy->cr_top)); in pistachio_usb_phy_probe()
153 return PTR_ERR(p_phy->cr_top); in pistachio_usb_phy_probe()
156 p_phy->phy_clk = devm_clk_get(p_phy->dev, "usb_phy"); in pistachio_usb_phy_probe()
157 if (IS_ERR(p_phy->phy_clk)) { in pistachio_usb_phy_probe()
158 dev_err(p_phy->dev, "Failed to get usb_phy clock: %ld\n", in pistachio_usb_phy_probe()
159 PTR_ERR(p_phy->phy_clk)); in pistachio_usb_phy_probe()
160 return PTR_ERR(p_phy->phy_clk); in pistachio_usb_phy_probe()
163 ret = of_property_read_u32(p_phy->dev->of_node, "img,refclk", in pistachio_usb_phy_probe()
164 &p_phy->refclk); in pistachio_usb_phy_probe()
166 dev_err(p_phy->dev, "No reference clock selector specified\n"); in pistachio_usb_phy_probe()
170 phy = devm_phy_create(p_phy->dev, NULL, &pistachio_usb_phy_ops); in pistachio_usb_phy_probe()
172 dev_err(p_phy->dev, "Failed to create PHY: %ld\n", in pistachio_usb_phy_probe()
176 phy_set_drvdata(phy, p_phy); in pistachio_usb_phy_probe()
178 provider = devm_of_phy_provider_register(p_phy->dev, in pistachio_usb_phy_probe()
181 dev_err(p_phy->dev, "Failed to register PHY provider: %ld\n", in pistachio_usb_phy_probe()