diff options
author | Andy Green <andy.green@linaro.org> | 2014-12-28 09:52:49 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2014-12-28 10:30:58 +0800 |
commit | 6d473dddd20b087da8aa41af114c96dc7ca08463 (patch) | |
tree | b75c1cc631d4556eadec8b67e96447d6f088ad4f | |
parent | d5e21d32350846be50607937ce2eae535c7ba2f6 (diff) |
usb chipidea integrationmainline-basis-test-2014-12-28-1
Signed-off-by: Andy Green <andy.green@linaro.org>
-rw-r--r-- | arch/arm/boot/dts/msm8916-qrd-skui.dts | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/msm8916.dtsi | 62 | ||||
-rw-r--r-- | arch/arm/configs/msm8916-qrd_defconfig | 9 | ||||
-rw-r--r-- | drivers/usb/phy/phy-msm-usb.c | 26 |
4 files changed, 51 insertions, 48 deletions
diff --git a/arch/arm/boot/dts/msm8916-qrd-skui.dts b/arch/arm/boot/dts/msm8916-qrd-skui.dts index 8d7cc4f21700..5e0bd08af0f5 100644 --- a/arch/arm/boot/dts/msm8916-qrd-skui.dts +++ b/arch/arm/boot/dts/msm8916-qrd-skui.dts @@ -43,7 +43,7 @@ }; }; -&usb_otg { +&gadget0 { qcom,hsusb-otg-mode = <3>; qcom,usbid-gpio = <&msm_gpio 110 0>; pinctrl-names = "default"; diff --git a/arch/arm/boot/dts/msm8916.dtsi b/arch/arm/boot/dts/msm8916.dtsi index df9dbc92ca72..66203d77110f 100644 --- a/arch/arm/boot/dts/msm8916.dtsi +++ b/arch/arm/boot/dts/msm8916.dtsi @@ -958,45 +958,41 @@ qcom,ipi-ping; }; - usb_otg: usb@78d9000 { - compatible = "qcom,usb-otg-snps"; + usbphy0:usb@78 { + compatible = "qcom,usb-otg-snps"; + reg = <0x78d9000 0x400>; + interrupts = <0 134 0>; + dr_mode = "peripheral"; + clocks = <&clock_gcc clk_gcc_usb_hs_ahb_clk>, + <&clock_gcc clk_gcc_usb_hs_system_clk>, + <&clock_rpm clk_xo_otg_clk>; - reg = <0x78d9000 0x400>; - interrupts = <0 134 0>,<0 140 0>; - interrupt-names = "core_irq", "async_irq"; +// <&clock_gcc clk_gcc_usb2a_phy_sleep_clk>; + + clock-names = "iface", "core", "phy"; - vddcx-supply = <&pm8916_s1_corner>; - v1p8-supply = <&pm8916_l7>; - v3p3-supply = <&pm8916_l13>; - qcom,vdd-levels = <1 5 7>; + vddcx-supply = <&pm8916_s1_corner>; + v1p8-supply = <&pm8916_l7>; + v3p3-supply = <&pm8916_l13>; + qcom,vdd-levels = <1 5 7>; - qcom,phy-init-sequence = + qcom,phy-init-sequence = <0x44 0x80 0x6B 0x81 0x24 0x82 0x13 0x83 0xffffffff>; - qcom,otg-phy-type = <2>; - qcom,otg-mode = <1>; - qcom,otg-control = <2>; - qcom,dp-manual-pullup; - - qcom,msm-bus,name = "usb2"; - qcom,msm-bus,num-cases = <3>; - qcom,msm-bus,num-paths = <1>; - qcom,msm-bus,vectors-KBps = - <87 512 0 0>, - <87 512 80000 0>, - <87 512 6000 6000>; - clocks = <&clock_gcc clk_gcc_usb_hs_ahb_clk>, - <&clock_gcc clk_gcc_usb_hs_system_clk>, - <&clock_gcc clk_gcc_usb2a_phy_sleep_clk>, - <&clock_rpm clk_bimc_usb_a_clk>, - <&clock_rpm clk_snoc_usb_a_clk>, - <&clock_rpm clk_pcnoc_usb_a_clk>, - <&clock_rpm clk_xo_otg_clk>; - clock-names = "iface", "core", "phy", - "bimc_clk", "snoc_clk", "pcnoc_clk", - "xo"; - qcom,bus-clk-rate = <400000000 200000000 100000000>; + qcom,otg-phy-type = <2>; + qcom,otg-mode = <1>; + qcom,otg-control = <2>; + +// resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>; +// reset-names = "phy", "link"; }; + gadget0: gadget@78 { + compatible = "qcom,ci-hdrc"; + reg = <0x78d9000 0x400>; + dr_mode = "peripheral"; + interrupts = <0 134 0>; + usb-phy = <&usbphy0>; + }; }; diff --git a/arch/arm/configs/msm8916-qrd_defconfig b/arch/arm/configs/msm8916-qrd_defconfig index d6030862df26..146b18b96687 100644 --- a/arch/arm/configs/msm8916-qrd_defconfig +++ b/arch/arm/configs/msm8916-qrd_defconfig @@ -126,9 +126,15 @@ CONFIG_USB=y CONFIG_USB_OTG=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MSM=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_DEBUG=y CONFIG_USB_MSM_OTG=y CONFIG_USB_GADGET=y -CONFIG_USB_ETH=y +CONFIG_USB_ETH=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_CDC_COMPOSITE=m CONFIG_MMC=y CONFIG_MMC_CLKGATE=y CONFIG_MMC_BLOCK_MINORS=32 @@ -155,6 +161,7 @@ CONFIG_EXT4_FS_SECURITY=y CONFIG_FUSE_FS=y CONFIG_VFAT_FS=y CONFIG_TMPFS=y +CONFIG_CONFIGFS_FS=y CONFIG_CRAMFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ASCII=y diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c index 674438b1d429..7bb6e0ef5fd3 100644 --- a/drivers/usb/phy/phy-msm-usb.c +++ b/drivers/usb/phy/phy-msm-usb.c @@ -45,6 +45,8 @@ #include <linux/regulator/consumer.h> #include <linux/clk/msm-clk.h> +#define DEBUG + #define MSM_USB_BASE (motg->regs) #define DRIVER_NAME "msm_otg" @@ -307,17 +309,14 @@ static int msm_otg_link_clk_reset(struct msm_otg *motg, bool assert) static int msm_otg_phy_clk_reset(struct msm_otg *motg) { int ret = 0; -#if 0 - if (motg->pdata->phy_clk_reset) - ret = motg->pdata->phy_clk_reset(motg->phy_reset_clk); - else if (motg->phy_rst) - ret = reset_control_reset(motg->phy_rst); + u32 val; - if (ret) - dev_err(motg->phy.dev, "usb phy clk reset failed\n"); -#endif +// if (motg->pdata->phy_clk_reset) + clk_reset(motg->phy_reset_clk, CLK_RESET_ASSERT); + clk_reset(motg->phy_reset_clk, CLK_RESET_DEASSERT); - u32 val; +// else if (motg->phy_rst) +// ret = reset_control_reset(motg->phy_rst); /* * * AHB2AHB Bypass mode shouldn't be enable before doing @@ -1328,6 +1327,7 @@ static irqreturn_t msm_otg_irq(int irq, void *data) struct msm_otg *motg = data; struct usb_phy *phy = &motg->phy; u32 otgsc = 0; + pr_err("%s\n", __func__); if (atomic_read(&motg->in_lpm)) { disable_irq_nosync(irq); @@ -1613,15 +1613,14 @@ static int msm_otg_probe(struct platform_device *pdev) phy = &motg->phy; phy->dev = &pdev->dev; - if (motg->pdata->phy_clk_reset) { - motg->phy_reset_clk = devm_clk_get(&pdev->dev, - np ? "phy" : "usb_phy_clk"); +// if (motg->pdata->phy_clk_reset) { + motg->phy_reset_clk = devm_clk_get(&pdev->dev, "phy"); if (IS_ERR(motg->phy_reset_clk)) { dev_err(&pdev->dev, "failed to get usb_phy_clk\n"); return PTR_ERR(motg->phy_reset_clk); } - } +// } motg->clk = devm_clk_get(&pdev->dev, np ? "core" : "usb_hs_clk"); if (IS_ERR(motg->clk)) { @@ -1757,6 +1756,7 @@ static int msm_otg_probe(struct platform_device *pdev) pm_runtime_set_active(&pdev->dev); pm_runtime_enable(&pdev->dev); + dev_info(&pdev->dev, "initialized\n"); return 0; |