mirror of https://gitee.com/openkylin/linux.git
usb: chipidea: msm: Add device tree support
Allows controller to be specified via device tree. Pass PHY phandle specified in DT to core driver. Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a33d8ce729
commit
2629b10167
|
@ -57,9 +57,21 @@ static struct ci_hdrc_platform_data ci_hdrc_msm_platdata = {
|
||||||
static int ci_hdrc_msm_probe(struct platform_device *pdev)
|
static int ci_hdrc_msm_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct platform_device *plat_ci;
|
struct platform_device *plat_ci;
|
||||||
|
struct usb_phy *phy;
|
||||||
|
|
||||||
dev_dbg(&pdev->dev, "ci_hdrc_msm_probe\n");
|
dev_dbg(&pdev->dev, "ci_hdrc_msm_probe\n");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OTG(PHY) driver takes care of PHY initialization, clock management,
|
||||||
|
* powering up VBUS, mapping of registers address space and power
|
||||||
|
* management.
|
||||||
|
*/
|
||||||
|
phy = devm_usb_get_phy_by_phandle(&pdev->dev, "usb-phy", 0);
|
||||||
|
if (IS_ERR(phy))
|
||||||
|
return PTR_ERR(phy);
|
||||||
|
|
||||||
|
ci_hdrc_msm_platdata.phy = phy;
|
||||||
|
|
||||||
plat_ci = ci_hdrc_add_device(&pdev->dev,
|
plat_ci = ci_hdrc_add_device(&pdev->dev,
|
||||||
pdev->resource, pdev->num_resources,
|
pdev->resource, pdev->num_resources,
|
||||||
&ci_hdrc_msm_platdata);
|
&ci_hdrc_msm_platdata);
|
||||||
|
@ -86,10 +98,19 @@ static int ci_hdrc_msm_remove(struct platform_device *pdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct of_device_id msm_ci_dt_match[] = {
|
||||||
|
{ .compatible = "qcom,ci-hdrc", },
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
MODULE_DEVICE_TABLE(of, msm_ci_dt_match);
|
||||||
|
|
||||||
static struct platform_driver ci_hdrc_msm_driver = {
|
static struct platform_driver ci_hdrc_msm_driver = {
|
||||||
.probe = ci_hdrc_msm_probe,
|
.probe = ci_hdrc_msm_probe,
|
||||||
.remove = ci_hdrc_msm_remove,
|
.remove = ci_hdrc_msm_remove,
|
||||||
.driver = { .name = "msm_hsusb", },
|
.driver = {
|
||||||
|
.name = "msm_hsusb",
|
||||||
|
.of_match_table = msm_ci_dt_match,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module_platform_driver(ci_hdrc_msm_driver);
|
module_platform_driver(ci_hdrc_msm_driver);
|
||||||
|
|
Loading…
Reference in New Issue