udc->phy = devm_usb_get_phy_by_phandle(&pdev->dev, "nvidia,phy", 0);
#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/usb/chipidea.h>
struct ci_hdrc_platform_data data;
struct platform_device *dev;
struct tegra_udc_soc_info {
static const struct tegra_udc_soc_info tegra20_udc_soc_info = {
.flags = CI_HDRC_REQUIRES_ALIGNED_DMA,
static const struct tegra_udc_soc_info tegra30_udc_soc_info = {
.flags = CI_HDRC_REQUIRES_ALIGNED_DMA,
static const struct tegra_udc_soc_info tegra114_udc_soc_info = {
.flags = CI_HDRC_REQUIRES_ALIGNED_DMA,
static const struct tegra_udc_soc_info tegra124_udc_soc_info = {
.flags = CI_HDRC_REQUIRES_ALIGNED_DMA,
static const struct of_device_id tegra_udc_of_match[] = {
.compatible = "nvidia,tegra20-udc",
.data = &tegra20_udc_soc_info,
.compatible = "nvidia,tegra30-udc",
.data = &tegra30_udc_soc_info,
.compatible = "nvidia,tegra114-udc",
.data = &tegra114_udc_soc_info,
.compatible = "nvidia,tegra124-udc",
.data = &tegra124_udc_soc_info,
MODULE_DEVICE_TABLE(of, tegra_udc_of_match);
static int tegra_udc_probe(struct platform_device *pdev)