Lines Matching refs:lane
105 int tegra_xusb_lane_parse_dt(struct tegra_xusb_lane *lane, in tegra_xusb_lane_parse_dt() argument
108 struct device *dev = &lane->pad->dev; in tegra_xusb_lane_parse_dt()
116 err = match_string(lane->soc->funcs, lane->soc->num_funcs, function); in tegra_xusb_lane_parse_dt()
123 lane->function = err; in tegra_xusb_lane_parse_dt()
131 struct tegra_xusb_lane *lane = phy_get_drvdata(phy); in tegra_xusb_lane_destroy() local
133 lane->pad->ops->remove(lane); in tegra_xusb_lane_destroy()
181 struct phy *lane; in tegra_xusb_pad_register() local
189 pad->lanes = devm_kcalloc(&pad->dev, pad->soc->num_lanes, sizeof(lane), in tegra_xusb_pad_register()
198 struct tegra_xusb_lane *lane; in tegra_xusb_pad_register() local
213 lane = pad->ops->probe(pad, np, i); in tegra_xusb_pad_register()
214 if (IS_ERR(lane)) { in tegra_xusb_pad_register()
216 err = PTR_ERR(lane); in tegra_xusb_pad_register()
220 list_add_tail(&lane->list, &pad->padctl->lanes); in tegra_xusb_pad_register()
221 phy_set_drvdata(pad->lanes[i], lane); in tegra_xusb_pad_register()
310 static void tegra_xusb_lane_program(struct tegra_xusb_lane *lane) in tegra_xusb_lane_program() argument
312 struct tegra_xusb_padctl *padctl = lane->pad->padctl; in tegra_xusb_lane_program()
313 const struct tegra_xusb_lane_soc *soc = lane->soc; in tegra_xusb_lane_program()
319 value |= lane->function << soc->shift; in tegra_xusb_lane_program()
328 struct tegra_xusb_lane *lane; in tegra_xusb_pad_program() local
331 lane = phy_get_drvdata(pad->lanes[i]); in tegra_xusb_pad_program()
332 tegra_xusb_lane_program(lane); in tegra_xusb_pad_program()
371 static bool tegra_xusb_lane_check(struct tegra_xusb_lane *lane, in tegra_xusb_lane_check() argument
374 const char *func = lane->soc->funcs[lane->function]; in tegra_xusb_lane_check()
383 struct tegra_xusb_lane *lane, *hit = ERR_PTR(-ENODEV); in tegra_xusb_find_lane() local
390 list_for_each_entry(lane, &padctl->lanes, list) { in tegra_xusb_find_lane()
391 if (strcmp(lane->soc->name, name) == 0) { in tegra_xusb_find_lane()
392 hit = lane; in tegra_xusb_find_lane()
406 struct tegra_xusb_lane *lane, *match = ERR_PTR(-ENODEV); in tegra_xusb_port_find_lane() local
412 lane = tegra_xusb_find_lane(port->padctl, map->type, in tegra_xusb_port_find_lane()
414 if (IS_ERR(lane)) in tegra_xusb_port_find_lane()
417 if (!tegra_xusb_lane_check(lane, function)) in tegra_xusb_port_find_lane()
424 match = lane; in tegra_xusb_port_find_lane()
583 usb2->base.lane = usb2->base.ops->map(&usb2->base); in tegra_xusb_add_usb2_port()
584 if (IS_ERR(usb2->base.lane)) { in tegra_xusb_add_usb2_port()
585 err = PTR_ERR(usb2->base.lane); in tegra_xusb_add_usb2_port()
635 ulpi->base.lane = ulpi->base.ops->map(&ulpi->base); in tegra_xusb_add_ulpi_port()
636 if (IS_ERR(ulpi->base.lane)) { in tegra_xusb_add_ulpi_port()
637 err = PTR_ERR(ulpi->base.lane); in tegra_xusb_add_ulpi_port()
683 hsic->base.lane = hsic->base.ops->map(&hsic->base); in tegra_xusb_add_hsic_port()
684 if (IS_ERR(hsic->base.lane)) { in tegra_xusb_add_hsic_port()
685 err = PTR_ERR(hsic->base.lane); in tegra_xusb_add_hsic_port()
751 usb3->base.lane = usb3->base.ops->map(&usb3->base); in tegra_xusb_add_usb3_port()
752 if (IS_ERR(usb3->base.lane)) { in tegra_xusb_add_usb3_port()
753 err = PTR_ERR(usb3->base.lane); in tegra_xusb_add_usb3_port()