Lines Matching refs:phy

65 	struct phy		*phy;  member
70 static void u2_phy_w32(struct ralink_usb_phy *phy, u32 val, u32 reg) in u2_phy_w32() argument
72 writel(val, phy->base + reg); in u2_phy_w32()
75 static u32 u2_phy_r32(struct ralink_usb_phy *phy, u32 reg) in u2_phy_r32() argument
77 return readl(phy->base + reg); in u2_phy_r32()
80 static void ralink_usb_phy_init(struct ralink_usb_phy *phy) in ralink_usb_phy_init() argument
82 u2_phy_r32(phy, OFS_U2_PHY_AC2); in ralink_usb_phy_init()
83 u2_phy_r32(phy, OFS_U2_PHY_ACR0); in ralink_usb_phy_init()
84 u2_phy_r32(phy, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
86 u2_phy_w32(phy, 0x00ffff02, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
87 u2_phy_r32(phy, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
88 u2_phy_w32(phy, 0x00555502, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
89 u2_phy_r32(phy, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
90 u2_phy_w32(phy, 0x00aaaa02, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
91 u2_phy_r32(phy, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
92 u2_phy_w32(phy, 0x00000402, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
93 u2_phy_r32(phy, OFS_U2_PHY_DCR0); in ralink_usb_phy_init()
94 u2_phy_w32(phy, 0x0048086a, OFS_U2_PHY_AC0); in ralink_usb_phy_init()
95 u2_phy_w32(phy, 0x4400001c, OFS_U2_PHY_AC1); in ralink_usb_phy_init()
96 u2_phy_w32(phy, 0xc0200000, OFS_U2_PHY_ACR3); in ralink_usb_phy_init()
97 u2_phy_w32(phy, 0x02000000, OFS_U2_PHY_DTM0); in ralink_usb_phy_init()
100 static int ralink_usb_phy_power_on(struct phy *_phy) in ralink_usb_phy_power_on()
102 struct ralink_usb_phy *phy = phy_get_drvdata(_phy); in ralink_usb_phy_power_on() local
106 regmap_update_bits(phy->sysctl, RT_SYSC_REG_CLKCFG1, in ralink_usb_phy_power_on()
107 phy->clk, phy->clk); in ralink_usb_phy_power_on()
110 regmap_update_bits(phy->sysctl, RT_SYSC_REG_SYSCFG1, in ralink_usb_phy_power_on()
115 reset_control_deassert(phy->rsthost); in ralink_usb_phy_power_on()
116 reset_control_deassert(phy->rstdev); in ralink_usb_phy_power_on()
124 if (phy->base) in ralink_usb_phy_power_on()
125 ralink_usb_phy_init(phy); in ralink_usb_phy_power_on()
128 regmap_read(phy->sysctl, RT_SYSC_REG_USB_PHY_CFG, &t); in ralink_usb_phy_power_on()
129 dev_info(&phy->phy->dev, "remote usb device wakeup %s\n", in ralink_usb_phy_power_on()
132 dev_info(&phy->phy->dev, "UTMI 8bit 60MHz\n"); in ralink_usb_phy_power_on()
134 dev_info(&phy->phy->dev, "UTMI 16bit 30MHz\n"); in ralink_usb_phy_power_on()
139 static int ralink_usb_phy_power_off(struct phy *_phy) in ralink_usb_phy_power_off()
141 struct ralink_usb_phy *phy = phy_get_drvdata(_phy); in ralink_usb_phy_power_off() local
144 regmap_update_bits(phy->sysctl, RT_SYSC_REG_CLKCFG1, in ralink_usb_phy_power_off()
145 phy->clk, 0); in ralink_usb_phy_power_off()
148 reset_control_assert(phy->rstdev); in ralink_usb_phy_power_off()
149 reset_control_assert(phy->rsthost); in ralink_usb_phy_power_off()
185 struct ralink_usb_phy *phy; in ralink_usb_phy_probe() local
191 phy = devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL); in ralink_usb_phy_probe()
192 if (!phy) in ralink_usb_phy_probe()
195 phy->clk = (uintptr_t)match->data; in ralink_usb_phy_probe()
196 phy->base = NULL; in ralink_usb_phy_probe()
198 phy->sysctl = syscon_regmap_lookup_by_phandle(dev->of_node, "ralink,sysctl"); in ralink_usb_phy_probe()
199 if (IS_ERR(phy->sysctl)) { in ralink_usb_phy_probe()
201 return PTR_ERR(phy->sysctl); in ralink_usb_phy_probe()
207 phy->base = devm_ioremap_resource(&pdev->dev, res); in ralink_usb_phy_probe()
208 if (IS_ERR(phy->base)) { in ralink_usb_phy_probe()
210 return PTR_ERR(phy->base); in ralink_usb_phy_probe()
214 phy->rsthost = devm_reset_control_get(&pdev->dev, "host"); in ralink_usb_phy_probe()
215 if (IS_ERR(phy->rsthost)) { in ralink_usb_phy_probe()
217 return PTR_ERR(phy->rsthost); in ralink_usb_phy_probe()
220 phy->rstdev = devm_reset_control_get(&pdev->dev, "device"); in ralink_usb_phy_probe()
221 if (IS_ERR(phy->rstdev)) { in ralink_usb_phy_probe()
223 return PTR_ERR(phy->rstdev); in ralink_usb_phy_probe()
226 phy->phy = devm_phy_create(dev, NULL, &ralink_usb_phy_ops); in ralink_usb_phy_probe()
227 if (IS_ERR(phy->phy)) { in ralink_usb_phy_probe()
229 return PTR_ERR(phy->phy); in ralink_usb_phy_probe()
231 phy_set_drvdata(phy->phy, phy); in ralink_usb_phy_probe()