diff options
author | zhangfd0709 <zhangfd0709@thundersoft.com> | 2018-08-19 15:55:18 +0800 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2019-02-21 16:42:17 +0000 |
commit | 4f45efeb77df0d5b554985c9240653d675491883 (patch) | |
tree | 49d4a1197f65725baf4a46b1648acd2d4bd58fe7 | |
parent | f5cf6c4a4fb0815aefced905f628a0907cc7db00 (diff) |
USB: enable USB type c and type a host
Enable USB type c and type a host
[IssueID]:redmine45687
[Module]: kernel
Change-Id: Ibec9856e49354eafad3762c26163ce0869e18bee
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-670-usb-common.dtsi | 8 | ||||
-rw-r--r-- | drivers/usb/dwc3/dwc3-msm.c | 25 |
2 files changed, 32 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/qcom/sdm845-670-usb-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-670-usb-common.dtsi index bf09b67c7cd82..ab8813d325631 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-670-usb-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-670-usb-common.dtsi @@ -360,6 +360,10 @@ interrupt-names = "dp_hs_phy_irq", "pwr_event_irq", "ss_phy_irq", "dm_hs_phy_irq"; + pinctrl-names = "wcd_usbc_analog_en1_idle","wcd_usbc_analog_en1_active"; + pinctrl-0 = <&wcd_usbc_analog_en1_idle>; + pinctrl-1 = <&wcd_usbc_analog_en1_active>; + USB3_GDSC-supply = <&usb30_sec_gdsc>; qcom,dwc-usb3-msm-tx-fifo-size = <21288>; qcom,use-pdc-interrupts; @@ -397,6 +401,7 @@ reg = <0x0a800000 0xcd00>; interrupts = <0 138 0>; usb-phy = <&qusb_phy1>, <&usb_qmp_phy>; + dr_mode = "host"; tx-fifo-resize; linux,sysdev_is_parent; snps,disable-clk-gating; @@ -429,7 +434,8 @@ 0x254 /* QUSB2PHY_TEST1 */ 0x198 /* PLL_BIAS_CONTROL_2 */ 0x228 /* QUSB2PHY_SQ_CTRL1 */ - 0x22c>; /* QUSB2PHY_SQ_CTRL2 */ + 0x22c /* QUSB2PHY_SQ_CTRL2 */ + 0x27c>; /* QUSB2PHY_DEBUG_CTRL1 */ qcom,qusb-phy-init-seq = /* <value reg_offset> */ diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index bf1baf6f344fc..d6ba3e159b706 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -47,6 +47,7 @@ #include <linux/extcon.h> #include <linux/reset.h> #include <linux/clk/qcom.h> +#include <linux/gpio.h> #include "power.h" #include "core.h" @@ -3322,6 +3323,8 @@ static int dwc3_msm_probe(struct platform_device *pdev) { struct device_node *node = pdev->dev.of_node, *dwc3_node; struct device *dev = &pdev->dev; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_state; union power_supply_propval pval = {0}; struct dwc3_msm *mdwc; struct dwc3 *dwc; @@ -3502,6 +3505,28 @@ static int dwc3_msm_probe(struct platform_device *pdev) } } + pinctrl = devm_pinctrl_get(&pdev->dev); + if(IS_ERR(pinctrl)) { + dev_err(&pdev->dev, "pinctrl get failed.\n"); + + } else { + pinctrl_state = pinctrl_lookup_state(pinctrl, "wcd_usbc_analog_en1_active"); + if(IS_ERR(pinctrl_state)) { + dev_err(&pdev->dev, "pinctrl get state failed.\n"); + + } else { + ret = pinctrl_select_state(pinctrl, pinctrl_state); + if(ret) { + dev_err(&pdev->dev, "%s: disable pinctrl failed with %d\n", + __func__, ret); + + } + printk("%s, pinctrl_state:%d\n", __func__, ret); + + } + + } + ext_hub_reset_gpio = of_get_named_gpio(node, "qcom,ext-hub-reset-gpio", 0); |