summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-09-07 14:28:23 +0100
committerMark Brown <broonie@kernel.org>2026-09-07 14:28:23 +0100
commitba001f006abf3f70ec257414b168655ae5556098 (patch)
tree837de0589cccb00bec56660a7f57f978b07524fd
parentcefed17f06de5271cf17b6993bb3d616ee2d5ac5 (diff)
parentedc1518454f6439e50a9220e9a3ba09044ea8d8b (diff)
downloadlinux-next-ba001f006abf3f70ec257414b168655ae5556098.tar.gz
linux-next-ba001f006abf3f70ec257414b168655ae5556098.zip
Merge branch 'usb-next' of https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
-rw-r--r--Documentation/devicetree/bindings/usb/generic-ehci.yaml24
-rw-r--r--Documentation/devicetree/bindings/usb/generic-ohci.yaml24
-rw-r--r--Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml1
-rw-r--r--Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml19
-rw-r--r--Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml11
-rw-r--r--arch/arm/boot/dts/st/stm32mp131.dtsi4
-rw-r--r--arch/arm/boot/dts/st/stm32mp151.dtsi4
-rw-r--r--arch/arm64/boot/dts/st/stm32mp231.dtsi64
-rw-r--r--arch/arm64/boot/dts/st/stm32mp251.dtsi63
-rw-r--r--drivers/usb/cdns3/core.c4
-rw-r--r--drivers/usb/cdns3/drd.c4
-rw-r--r--drivers/usb/common/usb-conn-gpio.c8
-rw-r--r--drivers/usb/dwc2/gadget.c4
-rw-r--r--drivers/usb/dwc3/debugfs.c6
-rw-r--r--drivers/usb/dwc3/dwc3-google.c4
-rw-r--r--drivers/usb/dwc3/dwc3-imx.c2
-rw-r--r--drivers/usb/dwc3/dwc3-imx8mp.c4
-rw-r--r--drivers/usb/dwc3/dwc3-keystone.c5
-rw-r--r--drivers/usb/dwc3/dwc3-omap.c5
-rw-r--r--drivers/usb/dwc3/dwc3-qcom.c15
-rw-r--r--drivers/usb/gadget/udc/aspeed-vhub/core.c4
-rw-r--r--drivers/usb/gadget/udc/aspeed_udc.c4
-rw-r--r--drivers/usb/gadget/udc/atmel_usba_udc.c5
-rw-r--r--drivers/usb/gadget/udc/r8a66597-udc.c4
-rw-r--r--drivers/usb/gadget/udc/renesas_usbf.c8
-rw-r--r--drivers/usb/gadget/udc/snps_udc_plat.c4
-rw-r--r--drivers/usb/gadget/udc/tegra-xudc.c5
-rw-r--r--drivers/usb/host/xhci-tegra.c8
-rw-r--r--drivers/usb/misc/brcmstb-usb-pinmap.c9
-rw-r--r--drivers/usb/misc/qcom_eud.c2
-rw-r--r--drivers/usb/mtu3/mtu3_core.c4
-rw-r--r--drivers/usb/phy/phy-ab8500-usb.c12
-rw-r--r--drivers/usb/phy/phy-generic.c3
-rw-r--r--drivers/usb/phy/phy-gpio-vbus-usb.c5
-rw-r--r--drivers/usb/renesas_usbhs/mod.c4
-rw-r--r--drivers/usb/typec/anx7411.c4
-rw-r--r--drivers/usb/typec/hd3ss3220.c36
-rw-r--r--drivers/usb/typec/mux/gpio-sbu-mux.c13
-rw-r--r--drivers/usb/typec/mux/it5205.c2
-rw-r--r--drivers/usb/typec/tcpm/tcpci_maxim_core.c3
-rw-r--r--drivers/usb/typec/tcpm/tcpci_mt6360.c1
-rw-r--r--drivers/usb/typec/tcpm/tcpci_mt6370.c2
42 files changed, 303 insertions, 114 deletions
diff --git a/Documentation/devicetree/bindings/usb/generic-ehci.yaml b/Documentation/devicetree/bindings/usb/generic-ehci.yaml
index ae9fb70d0212..908b02d9175e 100644
--- a/Documentation/devicetree/bindings/usb/generic-ehci.yaml
+++ b/Documentation/devicetree/bindings/usb/generic-ehci.yaml
@@ -55,6 +55,10 @@ properties:
- rockchip,rk3588-ehci
- snps,hsdk-v1.0-ehci
- socionext,uniphier-ehci
+ - st,stm32mp13-ehci
+ - st,stm32mp15-ehci
+ - st,stm32mp23-ehci
+ - st,stm32mp25-ehci
- const: generic-ehci
- items:
- enum:
@@ -80,6 +84,9 @@ properties:
minItems: 1
maxItems: 2
+ access-controllers:
+ maxItems: 1
+
dma-coherent: true
interrupts:
@@ -193,6 +200,23 @@ allOf:
else:
properties:
clock-names: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - st,stm32mp23-ehci
+ - st,stm32mp25-ehci
+ then:
+ properties:
+ clocks:
+ items:
+ - description: PHY clock
+ - description: Bus clock
+
+ required:
+ - access-controllers
+ - clocks
unevaluatedProperties: false
diff --git a/Documentation/devicetree/bindings/usb/generic-ohci.yaml b/Documentation/devicetree/bindings/usb/generic-ohci.yaml
index 322808aaa283..7a8c3c231815 100644
--- a/Documentation/devicetree/bindings/usb/generic-ohci.yaml
+++ b/Documentation/devicetree/bindings/usb/generic-ohci.yaml
@@ -49,6 +49,10 @@ properties:
- ingenic,jz4740-ohci
- rockchip,rk3588-ohci
- snps,hsdk-v1.0-ohci
+ - st,stm32mp13-ohci
+ - st,stm32mp15-ohci
+ - st,stm32mp23-ohci
+ - st,stm32mp25-ohci
- const: generic-ohci
- enum:
- generic-ohci
@@ -65,6 +69,9 @@ properties:
reg:
maxItems: 1
+ access-controllers:
+ maxItems: 1
+
dma-coherent: true
interrupts:
@@ -213,6 +220,23 @@ allOf:
clocks:
minItems: 1
maxItems: 3
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - st,stm32mp23-ohci
+ - st,stm32mp25-ohci
+ then:
+ properties:
+ clocks:
+ items:
+ - description: PHY clock
+ - description: Bus clock
+
+ required:
+ - access-controllers
+ - clocks
unevaluatedProperties: false
diff --git a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
index 793662f6f3bf..c0e60848d8ab 100644
--- a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
+++ b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
@@ -22,6 +22,7 @@ properties:
- nxp,cbdtu02043
- onnn,fsusb42
- onnn,fsusb43l10x
+ - onnn,fusb340
- pericom,pi3usb102
- ti,tmuxhs4212
- const: gpio-sbu-mux
diff --git a/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
index ea60f7220afe..9f91c8711e02 100644
--- a/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
@@ -40,6 +40,7 @@ properties:
- qcom,maili-dwc3
- qcom,milos-dwc3
- qcom,msm8953-dwc3
+ - qcom,msm8974-dwc3
- qcom,msm8994-dwc3
- qcom,msm8996-dwc3
- qcom,msm8998-dwc3
@@ -268,6 +269,7 @@ allOf:
contains:
enum:
- qcom,ipq8074-dwc3
+ - qcom,msm8974-dwc3
- qcom,qdu1000-dwc3
then:
properties:
@@ -458,6 +460,23 @@ allOf:
compatible:
contains:
enum:
+ - qcom,msm8974-dwc3
+ then:
+ properties:
+ interrupts:
+ minItems: 3
+ maxItems: 3
+ interrupt-names:
+ items:
+ - const: dwc_usb3
+ - const: pwr_event
+ - const: hs_phy_irq
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
- qcom,msm8994-dwc3
- qcom,msm8996-dwc3
- qcom,qcs404-dwc3
diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
index 06099e93c6c3..654a982666dd 100644
--- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
+++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
@@ -25,6 +25,15 @@ properties:
interrupts:
maxItems: 1
+ vcc33-supply:
+ description: 3.3V supply (VCC33 pin), powering the SuperSpeed 2:1 MUX.
+
+ vdd5-supply:
+ description:
+ 5V supply (VDD5 pin), powering the CC controller and sourcing VCONN.
+ VDD5 has to be stable for at least tVDD5V_PG (2ms) before VCC33 starts
+ ramping up, unless ENn_CC is held high while both rails ramp up.
+
id-gpios:
description:
An input gpio for USB ID pin. Upon detecting a UFP device, HD3SS3220
@@ -68,6 +77,8 @@ examples:
reg = <0x47>;
interrupt-parent = <&gpio6>;
interrupts = <3>;
+ vcc33-supply = <&vcc3v3_control>;
+ vdd5-supply = <&vcc5v0_device_s0>;
ports {
#address-cells = <1>;
diff --git a/arch/arm/boot/dts/st/stm32mp131.dtsi b/arch/arm/boot/dts/st/stm32mp131.dtsi
index 5ae33b26e313..ae45c2023afe 100644
--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
@@ -1128,7 +1128,7 @@
};
usbh_ohci: usb@5800c000 {
- compatible = "generic-ohci";
+ compatible = "st,stm32mp13-ohci", "generic-ohci";
reg = <0x5800c000 0x1000>;
clocks = <&usbphyc>, <&rcc USBH>;
resets = <&rcc USBH_R>;
@@ -1137,7 +1137,7 @@
};
usbh_ehci: usb@5800d000 {
- compatible = "generic-ehci";
+ compatible = "st,stm32mp13-ehci", "generic-ehci";
reg = <0x5800d000 0x1000>;
clocks = <&usbphyc>, <&rcc USBH>;
resets = <&rcc USBH_R>;
diff --git a/arch/arm/boot/dts/st/stm32mp151.dtsi b/arch/arm/boot/dts/st/stm32mp151.dtsi
index e7fec8b49ae1..ae3188373238 100644
--- a/arch/arm/boot/dts/st/stm32mp151.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp151.dtsi
@@ -504,7 +504,7 @@
};
usbh_ohci: usb@5800c000 {
- compatible = "generic-ohci";
+ compatible = "st,stm32mp15-ohci", "generic-ohci";
reg = <0x5800c000 0x1000>;
clocks = <&usbphyc>, <&rcc USBH>;
resets = <&rcc USBH_R>;
@@ -515,7 +515,7 @@
};
usbh_ehci: usb@5800d000 {
- compatible = "generic-ehci";
+ compatible = "st,stm32mp15-ehci", "generic-ehci";
reg = <0x5800d000 0x1000>;
clocks = <&usbphyc>, <&rcc USBH>;
resets = <&rcc USBH_R>;
diff --git a/arch/arm64/boot/dts/st/stm32mp231.dtsi b/arch/arm64/boot/dts/st/stm32mp231.dtsi
index 9e1d240888ff..a393bcfd768a 100644
--- a/arch/arm64/boot/dts/st/stm32mp231.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp231.dtsi
@@ -778,6 +778,48 @@
snps,wr_osr_lmt = <0x7>;
};
};
+
+ usbh_ohci: usb@482e0000 {
+ compatible = "st,stm32mp23-ohci", "generic-ohci";
+ reg = <0x482e0000 0x1000>;
+ access-controllers = <&rifsc 63>;
+ clocks = <&usb2_phy1 1>, <&rcc CK_BUS_USB2OHCI>;
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy1>;
+ phy-names = "usb";
+ resets = <&rcc USBH_R>;
+ status = "disabled";
+ };
+
+ usbh_ehci: usb@482f0000 {
+ compatible = "st,stm32mp23-ehci", "generic-ehci";
+ reg = <0x482f0000 0x1000>;
+ access-controllers = <&rifsc 63>;
+ clocks = <&usb2_phy1 0>, <&rcc CK_BUS_USB2EHCI>;
+ companion = <&usbh_ohci>;
+ interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy1>;
+ phy-names = "usb";
+ resets = <&rcc USBH_R>;
+ status = "disabled";
+ };
+
+ usb3dr: usb@48300000 {
+ compatible = "st,stm32mp25-dwc3";
+ reg = <0x48300000 0x100000>;
+ access-controllers = <&rifsc 66>;
+ clocks = <&rcc CK_KER_USB2PHY2>,
+ <&rcc CK_BUS_USB3DR>,
+ <&rcc CK_KER_USB2PHY2>;
+ clock-names = "ref", "bus_early", "suspend";
+ interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
+ maximum-speed = "high-speed";
+ phys = <&usb2_phy2>;
+ phy-names = "usb2-phy";
+ resets = <&rcc USB3DR_R>;
+ st,syscfg = <&syscfg 0x4800>;
+ status = "disabled";
+ };
};
bsec: efuse@44000000 {
@@ -981,6 +1023,28 @@
compatible = "st,stm32mp23-syscfg", "syscon";
reg = <0x44230000 0x10000>;
#clock-cells = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ usb2_phy1: phy@2400 {
+ compatible = "st,stm32mp25-usb2phy1";
+ reg = <0x2400 0x24>;
+ #phy-cells = <0>;
+ #clock-cells = <1>;
+ clocks = <&rcc CK_KER_USB2PHY1>;
+ resets = <&rcc USB2PHY1_R>;
+ status = "disabled";
+ };
+
+ usb2_phy2: phy@2800 {
+ compatible = "st,stm32mp25-usb2phy2";
+ reg = <0x2800 0x10>;
+ #phy-cells = <0>;
+ #clock-cells = <1>;
+ clocks = <&rcc CK_KER_USB2PHY2EN>;
+ resets = <&rcc USB2PHY2_R>;
+ status = "disabled";
+ };
};
pinctrl: pinctrl@44240000 {
diff --git a/arch/arm64/boot/dts/st/stm32mp251.dtsi b/arch/arm64/boot/dts/st/stm32mp251.dtsi
index 9c63fdb5a885..0d814ae2476a 100644
--- a/arch/arm64/boot/dts/st/stm32mp251.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp251.dtsi
@@ -1716,6 +1716,47 @@
};
};
+ usbh_ohci: usb@482e0000 {
+ compatible = "st,stm32mp25-ohci", "generic-ohci";
+ reg = <0x482e0000 0x1000>;
+ access-controllers = <&rifsc 63>;
+ clocks = <&usb2_phy1 1>, <&rcc CK_BUS_USB2OHCI>;
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy1>;
+ phy-names = "usb";
+ resets = <&rcc USBH_R>;
+ status = "disabled";
+ };
+
+ usbh_ehci: usb@482f0000 {
+ compatible = "st,stm32mp25-ehci", "generic-ehci";
+ reg = <0x482f0000 0x1000>;
+ access-controllers = <&rifsc 63>;
+ clocks = <&usb2_phy1 0>, <&rcc CK_BUS_USB2EHCI>;
+ companion = <&usbh_ohci>;
+ interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy1>;
+ phy-names = "usb";
+ resets = <&rcc USBH_R>;
+ status = "disabled";
+ };
+
+ usb3dr: usb@48300000 {
+ compatible = "st,stm32mp25-dwc3";
+ reg = <0x48300000 0x100000>;
+ access-controllers = <&rifsc 66>;
+ clocks = <&rcc CK_KER_USB2PHY2>,
+ <&rcc CK_BUS_USB3DR>,
+ <&rcc CK_KER_USB2PHY2>;
+ clock-names = "ref", "bus_early", "suspend";
+ interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usb2_phy2>, <&combophy PHY_TYPE_USB3>;
+ phy-names = "usb2-phy", "usb3-phy";
+ resets = <&rcc USB3DR_R>;
+ st,syscfg = <&syscfg 0x4800>;
+ status = "disabled";
+ };
+
pcie_ep: pcie-ep@48400000 {
compatible = "st,stm32mp25-pcie-ep";
reg = <0x48400000 0x100000>,
@@ -1975,6 +2016,28 @@
compatible = "st,stm32mp25-syscfg", "syscon";
reg = <0x44230000 0x10000>;
#clock-cells = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ usb2_phy1: phy@2400 {
+ compatible = "st,stm32mp25-usb2phy1";
+ reg = <0x2400 0x24>;
+ #phy-cells = <0>;
+ #clock-cells = <1>;
+ clocks = <&rcc CK_KER_USB2PHY1>;
+ resets = <&rcc USB2PHY1_R>;
+ status = "disabled";
+ };
+
+ usb2_phy2: phy@2800 {
+ compatible = "st,stm32mp25-usb2phy2";
+ reg = <0x2800 0x10>;
+ #phy-cells = <0>;
+ #clock-cells = <1>;
+ clocks = <&rcc CK_KER_USB2PHY2EN>;
+ resets = <&rcc USB2PHY2_R>;
+ status = "disabled";
+ };
};
pinctrl: pinctrl@44240000 {
diff --git a/drivers/usb/cdns3/core.c b/drivers/usb/cdns3/core.c
index 504bdf13ea80..87122fb5bdb8 100644
--- a/drivers/usb/cdns3/core.c
+++ b/drivers/usb/cdns3/core.c
@@ -449,10 +449,8 @@ int cdns_init(struct cdns *cdns)
IRQF_SHARED,
dev_name(cdns->dev), cdns);
- if (ret) {
- dev_err(cdns->dev, "couldn't register wakeup irq handler\n");
+ if (ret)
goto role_switch_unregister;
- }
}
ret = cdns_drd_init(cdns);
diff --git a/drivers/usb/cdns3/drd.c b/drivers/usb/cdns3/drd.c
index d2bb682e4552..42f13757d904 100644
--- a/drivers/usb/cdns3/drd.c
+++ b/drivers/usb/cdns3/drd.c
@@ -509,10 +509,8 @@ int cdns_drd_init(struct cdns *cdns)
cdns_drd_thread_irq,
IRQF_SHARED,
dev_name(cdns->dev), cdns);
- if (ret) {
- dev_err(cdns->dev, "couldn't get otg_irq\n");
+ if (ret)
return ret;
- }
state = readl(&cdns->otg_regs->sts);
if (OTGSTS_OTG_NRDY(state)) {
diff --git a/drivers/usb/common/usb-conn-gpio.c b/drivers/usb/common/usb-conn-gpio.c
index 421c3af38e06..f6db03d89efd 100644
--- a/drivers/usb/common/usb-conn-gpio.c
+++ b/drivers/usb/common/usb-conn-gpio.c
@@ -251,10 +251,8 @@ static int usb_conn_probe(struct platform_device *pdev)
ret = devm_request_threaded_irq(dev, info->id_irq, NULL,
usb_conn_isr, USB_CONN_IRQF,
pdev->name, info);
- if (ret < 0) {
- dev_err(dev, "failed to request ID IRQ\n");
+ if (ret < 0)
goto put_role_sw;
- }
}
if (info->vbus_gpiod) {
@@ -268,10 +266,8 @@ static int usb_conn_probe(struct platform_device *pdev)
ret = devm_request_threaded_irq(dev, info->vbus_irq, NULL,
usb_conn_isr, USB_CONN_IRQF,
pdev->name, info);
- if (ret < 0) {
- dev_err(dev, "failed to request VBUS IRQ\n");
+ if (ret < 0)
goto put_role_sw;
- }
}
platform_set_drvdata(pdev, info);
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 102169b40419..f7afbedf9f2c 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -5053,10 +5053,8 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
ret = devm_request_irq(hsotg->dev, hsotg->irq, dwc2_hsotg_irq,
IRQF_SHARED, dev_name(hsotg->dev), hsotg);
- if (ret < 0) {
- dev_err(dev, "cannot claim IRQ for gadget\n");
+ if (ret < 0)
return ret;
- }
/* hsotg->num_of_eps holds number of EPs other than ep0 */
diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c
index 65d909e4b785..01ebd73198e0 100644
--- a/drivers/usb/dwc3/debugfs.c
+++ b/drivers/usb/dwc3/debugfs.c
@@ -367,14 +367,10 @@ static ssize_t dwc3_lsp_write(struct file *file, const char __user *ubuf,
struct seq_file *s = file->private_data;
struct dwc3 *dwc = s->private;
unsigned long flags;
- char buf[32] = { 0 };
u32 sel;
int ret;
- if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
- return -EFAULT;
-
- ret = kstrtouint(buf, 0, &sel);
+ ret = kstrtou32_from_user(ubuf, count, 0, &sel);
if (ret)
return ret;
diff --git a/drivers/usb/dwc3/dwc3-google.c b/drivers/usb/dwc3/dwc3-google.c
index a01ca23cb6a8..ec53e658760e 100644
--- a/drivers/usb/dwc3/dwc3-google.c
+++ b/drivers/usb/dwc3/dwc3-google.c
@@ -235,10 +235,8 @@ static int dwc3_google_request_irq(struct dwc3_google *google, struct platform_d
dwc3_google_resume_irq,
IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
req_name, google);
- if (ret < 0) {
- dev_err(google->dev, "failed to request irq %s\n", req_name);
+ if (ret < 0)
return ret;
- }
return irq;
}
diff --git a/drivers/usb/dwc3/dwc3-imx.c b/drivers/usb/dwc3/dwc3-imx.c
index 973a486b544d..d967acd43d44 100644
--- a/drivers/usb/dwc3/dwc3-imx.c
+++ b/drivers/usb/dwc3/dwc3-imx.c
@@ -250,7 +250,7 @@ static int dwc3_imx_probe(struct platform_device *pdev)
IRQF_ONESHOT | IRQF_NO_AUTOEN,
irq_name, dwc_imx);
if (ret)
- return dev_err_probe(dev, ret, "failed to request IRQ #%d\n", irq);
+ return ret;
ret = device_add_software_node(dev, &dwc3_imx_swnode);
if (ret)
diff --git a/drivers/usb/dwc3/dwc3-imx8mp.c b/drivers/usb/dwc3/dwc3-imx8mp.c
index 1cf96540b66e..ee92a5efaa6e 100644
--- a/drivers/usb/dwc3/dwc3-imx8mp.c
+++ b/drivers/usb/dwc3/dwc3-imx8mp.c
@@ -273,10 +273,8 @@ static int dwc3_imx8mp_probe(struct platform_device *pdev)
err = devm_request_threaded_irq(dev, irq, NULL, dwc3_imx8mp_interrupt,
IRQF_ONESHOT, dev_name(dev), dwc3_imx);
- if (err) {
- dev_err(dev, "failed to request IRQ #%d --> %d\n", irq, err);
+ if (err)
goto put_dwc3;
- }
device_set_wakeup_capable(dev, true);
pm_runtime_put(dev);
diff --git a/drivers/usb/dwc3/dwc3-keystone.c b/drivers/usb/dwc3/dwc3-keystone.c
index 7ee1610162b9..8ad302abe883 100644
--- a/drivers/usb/dwc3/dwc3-keystone.c
+++ b/drivers/usb/dwc3/dwc3-keystone.c
@@ -144,11 +144,8 @@ static int kdwc3_probe(struct platform_device *pdev)
error = devm_request_irq(dev, irq, dwc3_keystone_interrupt, IRQF_SHARED,
dev_name(dev), kdwc);
- if (error) {
- dev_err(dev, "failed to request IRQ #%d --> %d\n",
- irq, error);
+ if (error)
goto err_irq;
- }
kdwc3_enable_irqs(kdwc);
diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
index fe74d11bb629..3bff775fbe4e 100644
--- a/drivers/usb/dwc3/dwc3-omap.c
+++ b/drivers/usb/dwc3/dwc3-omap.c
@@ -518,11 +518,8 @@ static int dwc3_omap_probe(struct platform_device *pdev)
ret = devm_request_threaded_irq(dev, omap->irq, dwc3_omap_interrupt,
dwc3_omap_interrupt_thread, IRQF_SHARED,
"dwc3-omap", omap);
- if (ret) {
- dev_err(dev, "failed to request IRQ #%d --> %d\n",
- omap->irq, ret);
+ if (ret)
goto err2;
- }
dwc3_omap_enable_irqs(omap);
return 0;
diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index ac68b4218b56..ba26e61df915 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -19,6 +19,7 @@
#include <linux/iopoll.h>
#include <linux/usb/hcd.h>
#include <linux/usb.h>
+#include <linux/property.h>
#include "core.h"
#include "glue.h"
@@ -419,6 +420,16 @@ static irqreturn_t qcom_dwc3_resume_irq(int irq, void *data)
return IRQ_HANDLED;
}
+static int dwc3_qcom_set_swnode(struct device *dev)
+{
+ const struct property_entry props[] = {
+ PROPERTY_ENTRY_BOOL("xhci-skip-phy-init-quirk"),
+ {}
+ };
+
+ return device_create_managed_software_node(dev, props, NULL);
+}
+
static void dwc3_qcom_select_utmi_clk(struct dwc3_qcom *qcom)
{
/* Configure dwc3 to use UTMI clock as PIPE clock not present */
@@ -683,6 +694,10 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
if (ignore_pipe_clk)
dwc3_qcom_select_utmi_clk(qcom);
+ ret = dwc3_qcom_set_swnode(dev);
+ if (ret)
+ goto clk_disable;
+
qcom->mode = usb_get_dr_mode(dev);
if (qcom->mode == USB_DR_MODE_HOST) {
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/core.c b/drivers/usb/gadget/udc/aspeed-vhub/core.c
index 4a8b9ff8368f..4ac990553a86 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/core.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/core.c
@@ -379,10 +379,8 @@ static int ast_vhub_probe(struct platform_device *pdev)
}
rc = devm_request_irq(&pdev->dev, vhub->irq, ast_vhub_irq, 0,
KBUILD_MODNAME, vhub);
- if (rc) {
- dev_err(&pdev->dev, "Failed to request interrupt\n");
+ if (rc)
goto err;
- }
dma_mask_ptr = (u64 *)of_device_get_match_data(&pdev->dev);
if (dma_mask_ptr) {
diff --git a/drivers/usb/gadget/udc/aspeed_udc.c b/drivers/usb/gadget/udc/aspeed_udc.c
index 54f81e668009..08b24902c7b9 100644
--- a/drivers/usb/gadget/udc/aspeed_udc.c
+++ b/drivers/usb/gadget/udc/aspeed_udc.c
@@ -1568,10 +1568,8 @@ static int ast_udc_probe(struct platform_device *pdev)
rc = devm_request_irq(&pdev->dev, udc->irq, ast_udc_isr, 0,
KBUILD_MODNAME, udc);
- if (rc) {
- dev_err(&pdev->dev, "Failed to request interrupt\n");
+ if (rc)
goto err_cleanup;
- }
rc = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
if (rc) {
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index 72a2f95ff018..18b4b2358d1e 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -2332,11 +2332,8 @@ static int usba_udc_probe(struct platform_device *pdev)
ret = devm_request_irq(&pdev->dev, irq, usba_udc_irq, 0,
"atmel_usba_udc", udc);
- if (ret) {
- dev_err(&pdev->dev, "Cannot request irq %d (error %d)\n",
- irq, ret);
+ if (ret)
return ret;
- }
udc->irq = irq;
if (udc->vbus_pin) {
diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c
index d190e16d43fc..915786c9628c 100644
--- a/drivers/usb/gadget/udc/r8a66597-udc.c
+++ b/drivers/usb/gadget/udc/r8a66597-udc.c
@@ -1894,10 +1894,8 @@ static int r8a66597_probe(struct platform_device *pdev)
ret = devm_request_irq(dev, irq, r8a66597_irq, IRQF_SHARED,
udc_name, r8a66597);
- if (ret < 0) {
- dev_err(dev, "request_irq error (%d)\n", ret);
+ if (ret < 0)
goto clean_up2;
- }
INIT_LIST_HEAD(&r8a66597->gadget.ep_list);
r8a66597->gadget.ep0 = &r8a66597->ep[0].ep;
diff --git a/drivers/usb/gadget/udc/renesas_usbf.c b/drivers/usb/gadget/udc/renesas_usbf.c
index d67002ea049a..367c9e73f366 100644
--- a/drivers/usb/gadget/udc/renesas_usbf.c
+++ b/drivers/usb/gadget/udc/renesas_usbf.c
@@ -3335,19 +3335,15 @@ static int usbf_probe(struct platform_device *pdev)
if (irq < 0)
return irq;
ret = devm_request_irq(dev, irq, usbf_epc_irq, 0, "usbf-epc", udc);
- if (ret) {
- dev_err(dev, "cannot request irq %d err %d\n", irq, ret);
+ if (ret)
return ret;
- }
irq = platform_get_irq(pdev, 1);
if (irq < 0)
return irq;
ret = devm_request_irq(dev, irq, usbf_ahb_epc_irq, 0, "usbf-ahb-epc", udc);
- if (ret) {
- dev_err(dev, "cannot request irq %d err %d\n", irq, ret);
+ if (ret)
return ret;
- }
usbf_reg_bitset(udc, USBF_REG_AHBMCTR, USBF_SYS_WBURST_TYPE);
diff --git a/drivers/usb/gadget/udc/snps_udc_plat.c b/drivers/usb/gadget/udc/snps_udc_plat.c
index 0ee3ed185d9c..8ce43c4f8fba 100644
--- a/drivers/usb/gadget/udc/snps_udc_plat.c
+++ b/drivers/usb/gadget/udc/snps_udc_plat.c
@@ -192,10 +192,8 @@ static int udc_plat_probe(struct platform_device *pdev)
ret = devm_request_irq(dev, udc->irq, udc_irq, IRQF_SHARED,
"snps-udc", udc);
- if (ret < 0) {
- dev_err(dev, "Request irq %d failed for UDC\n", udc->irq);
+ if (ret < 0)
goto exit_dma;
- }
platform_set_drvdata(pdev, udc);
udc->chiprev = UDC_BCM_REV;
diff --git a/drivers/usb/gadget/udc/tegra-xudc.c b/drivers/usb/gadget/udc/tegra-xudc.c
index e9d33be02866..5042c13f92be 100644
--- a/drivers/usb/gadget/udc/tegra-xudc.c
+++ b/drivers/usb/gadget/udc/tegra-xudc.c
@@ -3803,11 +3803,8 @@ static int tegra_xudc_probe(struct platform_device *pdev)
err = devm_request_irq(&pdev->dev, xudc->irq, tegra_xudc_irq, 0,
dev_name(&pdev->dev), xudc);
- if (err < 0) {
- dev_err(xudc->dev, "failed to claim IRQ#%u: %d\n", xudc->irq,
- err);
+ if (err < 0)
return err;
- }
xudc->clks = devm_kcalloc(&pdev->dev, xudc->soc->num_clks, sizeof(*xudc->clks),
GFP_KERNEL);
diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
index 6f235d1e117e..15dfa7e1a7dd 100644
--- a/drivers/usb/host/xhci-tegra.c
+++ b/drivers/usb/host/xhci-tegra.c
@@ -1909,20 +1909,16 @@ static int tegra_xusb_probe(struct platform_device *pdev)
tegra_xusb_mbox_irq,
tegra_xusb_mbox_thread, 0,
dev_name(&pdev->dev), tegra);
- if (err < 0) {
- dev_err(&pdev->dev, "failed to request IRQ: %d\n", err);
+ if (err < 0)
goto remove_usb3;
- }
if (tegra->padctl_irq) {
err = devm_request_threaded_irq(&pdev->dev, tegra->padctl_irq,
NULL, tegra_xusb_padctl_irq,
IRQF_ONESHOT, dev_name(&pdev->dev),
tegra);
- if (err < 0) {
- dev_err(&pdev->dev, "failed to request padctl IRQ: %d\n", err);
+ if (err < 0)
goto remove_usb3;
- }
}
err = tegra_xusb_enable_firmware_messages(tegra);
diff --git a/drivers/usb/misc/brcmstb-usb-pinmap.c b/drivers/usb/misc/brcmstb-usb-pinmap.c
index 1ce885e4184c..d8e9c80a9c2e 100644
--- a/drivers/usb/misc/brcmstb-usb-pinmap.c
+++ b/drivers/usb/misc/brcmstb-usb-pinmap.c
@@ -299,10 +299,8 @@ static int __init brcmstb_usb_pinmap_probe(struct platform_device *pdev)
brcmstb_usb_pinmap_ovr_isr,
IRQF_TRIGGER_RISING,
pdev->name, pdata);
- if (err < 0) {
- dev_err(&pdev->dev, "Error requesting IRQ\n");
+ if (err < 0)
return err;
- }
}
for (x = 0, pin = pdata->in_pins; x < pdata->in_count; x++, pin++) {
@@ -317,11 +315,8 @@ static int __init brcmstb_usb_pinmap_probe(struct platform_device *pdev)
IRQF_SHARED | IRQF_TRIGGER_RISING |
IRQF_TRIGGER_FALLING,
pdev->name, pin);
- if (err < 0) {
- dev_err(&pdev->dev, "Error requesting IRQ for %s pin\n",
- pin->name);
+ if (err < 0)
return err;
- }
}
dev_dbg(&pdev->dev, "Driver probe succeeded\n");
diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c
index 926419ca560f..a7b9ed4ac071 100644
--- a/drivers/usb/misc/qcom_eud.c
+++ b/drivers/usb/misc/qcom_eud.c
@@ -225,7 +225,7 @@ static int eud_probe(struct platform_device *pdev)
ret = devm_request_threaded_irq(&pdev->dev, chip->irq, handle_eud_irq,
handle_eud_irq_thread, IRQF_ONESHOT, NULL, chip);
if (ret)
- return dev_err_probe(chip->dev, ret, "failed to allocate irq\n");
+ return ret;
enable_irq_wake(chip->irq);
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
index a40bf5bad2d5..990e2e8e6bc2 100644
--- a/drivers/usb/mtu3/mtu3_core.c
+++ b/drivers/usb/mtu3/mtu3_core.c
@@ -973,10 +973,8 @@ int ssusb_gadget_init(struct ssusb_mtk *ssusb)
ret = devm_request_threaded_irq(dev, mtu->irq, NULL, mtu3_irq,
IRQF_ONESHOT, dev_name(dev), mtu);
- if (ret) {
- dev_err(dev, "request irq %d failed!\n", mtu->irq);
+ if (ret)
goto irq_err;
- }
/* power down device IP for power saving by default */
mtu3_stop(mtu);
diff --git a/drivers/usb/phy/phy-ab8500-usb.c b/drivers/usb/phy/phy-ab8500-usb.c
index 6a98aeeeae31..e2e06e57dced 100644
--- a/drivers/usb/phy/phy-ab8500-usb.c
+++ b/drivers/usb/phy/phy-ab8500-usb.c
@@ -748,10 +748,8 @@ static int ab8500_usb_irq_setup(struct platform_device *pdev,
ab8500_usb_link_status_irq,
IRQF_NO_SUSPEND | IRQF_SHARED | IRQF_ONESHOT,
"usb-link-status", ab);
- if (err < 0) {
- dev_err(ab->dev, "request_irq failed for link status irq\n");
+ if (err < 0)
return err;
- }
}
if (ab->flags & AB8500_USB_FLAG_USE_ID_WAKEUP_IRQ) {
@@ -762,10 +760,8 @@ static int ab8500_usb_irq_setup(struct platform_device *pdev,
ab8500_usb_disconnect_irq,
IRQF_NO_SUSPEND | IRQF_SHARED | IRQF_ONESHOT,
"usb-id-fall", ab);
- if (err < 0) {
- dev_err(ab->dev, "request_irq failed for ID fall irq\n");
+ if (err < 0)
return err;
- }
}
if (ab->flags & AB8500_USB_FLAG_USE_VBUS_DET_IRQ) {
@@ -776,10 +772,8 @@ static int ab8500_usb_irq_setup(struct platform_device *pdev,
ab8500_usb_disconnect_irq,
IRQF_NO_SUSPEND | IRQF_SHARED | IRQF_ONESHOT,
"usb-vbus-fall", ab);
- if (err < 0) {
- dev_err(ab->dev, "request_irq failed for Vbus fall irq\n");
+ if (err < 0)
return err;
- }
}
return 0;
diff --git a/drivers/usb/phy/phy-generic.c b/drivers/usb/phy/phy-generic.c
index de26b302334d..a41671eda2a1 100644
--- a/drivers/usb/phy/phy-generic.c
+++ b/drivers/usb/phy/phy-generic.c
@@ -282,8 +282,7 @@ static int usb_phy_generic_probe(struct platform_device *pdev)
VBUS_IRQ_FLAGS, "vbus_detect",
nop);
if (err)
- return dev_err_probe(dev, err, "can't request irq %i\n",
- gpiod_to_irq(nop->gpiod_vbus));
+ return err;
nop->phy.otg->state = gpiod_get_value(nop->gpiod_vbus) ?
OTG_STATE_B_PERIPHERAL : OTG_STATE_B_IDLE;
diff --git a/drivers/usb/phy/phy-gpio-vbus-usb.c b/drivers/usb/phy/phy-gpio-vbus-usb.c
index ce09e789afd8..c0135a30cabd 100644
--- a/drivers/usb/phy/phy-gpio-vbus-usb.c
+++ b/drivers/usb/phy/phy-gpio-vbus-usb.c
@@ -297,11 +297,8 @@ static int gpio_vbus_probe(struct platform_device *pdev)
err = devm_request_irq(&pdev->dev, irq, gpio_vbus_irq, irqflags,
"vbus_detect", pdev);
- if (err) {
- dev_err(&pdev->dev, "can't request irq %i, err: %d\n",
- irq, err);
+ if (err)
return err;
- }
INIT_DELAYED_WORK(&gpio_vbus->work, gpio_vbus_work);
diff --git a/drivers/usb/renesas_usbhs/mod.c b/drivers/usb/renesas_usbhs/mod.c
index f2ea3e1412d2..dcaebcc0614d 100644
--- a/drivers/usb/renesas_usbhs/mod.c
+++ b/drivers/usb/renesas_usbhs/mod.c
@@ -143,10 +143,8 @@ int usbhs_mod_probe(struct usbhs_priv *priv)
/* irq settings */
ret = devm_request_irq(dev, priv->irq, usbhs_interrupt,
0, dev_name(dev), priv);
- if (ret) {
- dev_err(dev, "irq request err\n");
+ if (ret)
goto mod_init_gadget_err;
- }
return ret;
diff --git a/drivers/usb/typec/anx7411.c b/drivers/usb/typec/anx7411.c
index 41df115912b9..2c41e00819f8 100644
--- a/drivers/usb/typec/anx7411.c
+++ b/drivers/usb/typec/anx7411.c
@@ -1529,10 +1529,8 @@ static int anx7411_i2c_probe(struct i2c_client *client)
IRQF_TRIGGER_FALLING |
IRQF_ONESHOT,
"anx7411-intp", plat);
- if (ret) {
- dev_err(dev, "fail to request irq\n");
+ if (ret)
goto free_wq;
- }
if (anx7411_typec_check_connection(plat))
dev_err(dev, "check status\n");
diff --git a/drivers/usb/typec/hd3ss3220.c b/drivers/usb/typec/hd3ss3220.c
index 4eec90c82bae..a717d0f8a4e5 100644
--- a/drivers/usb/typec/hd3ss3220.c
+++ b/drivers/usb/typec/hd3ss3220.c
@@ -49,6 +49,9 @@
#define HD3SS3220_REG_GEN_CTRL_MODE_SELECT_UFP BIT(4)
#define HD3SS3220_REG_GEN_CTRL_MODE_SELECT_DRP (BIT(5) | BIT(4))
+/* Minimum time VDD5 has to be stable before VCC33 starts ramping up */
+#define HD3SS3220_TVDD5V_PG_US 2000
+
struct hd3ss3220 {
struct device *dev;
struct regmap *regmap;
@@ -363,6 +366,31 @@ static irqreturn_t hd3ss3220_id_isr(int irq, void *dev_id)
return IRQ_HANDLED;
}
+/*
+ * Bring both supplies up in the order the datasheet asks for. Powering VCC33
+ * first can back-power the device in a non-functioning state, which grounds
+ * the I2C bus and takes both this device and any others on the same bus down
+ */
+static int hd3ss3220_power_up(struct device *dev)
+{
+ int ret;
+
+ ret = devm_regulator_get_enable(dev, "vdd5");
+ if (ret)
+ return dev_err_probe(dev, ret, "failed to enable VDD5\n");
+
+ /* Nothing to stagger against unless the board describes both rails */
+ if (device_property_present(dev, "vdd5-supply") &&
+ device_property_present(dev, "vcc33-supply"))
+ fsleep(HD3SS3220_TVDD5V_PG_US);
+
+ ret = devm_regulator_get_enable(dev, "vcc33");
+ if (ret)
+ return dev_err_probe(dev, ret, "failed to enable VCC33\n");
+
+ return 0;
+}
+
static int hd3ss3220_probe(struct i2c_client *client)
{
struct typec_capability typec_cap = { };
@@ -384,6 +412,10 @@ static int hd3ss3220_probe(struct i2c_client *client)
if (IS_ERR(hd3ss3220->regmap))
return PTR_ERR(hd3ss3220->regmap);
+ ret = hd3ss3220_power_up(hd3ss3220->dev);
+ if (ret)
+ return ret;
+
/* For backward compatibility check the connector child node first */
connector = device_get_named_child_node(hd3ss3220->dev, "connector");
if (connector) {
@@ -441,10 +473,8 @@ static int hd3ss3220_probe(struct i2c_client *client)
IRQF_TRIGGER_RISING |
IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
dev_name(hd3ss3220->dev), hd3ss3220);
- if (ret < 0) {
- dev_err(hd3ss3220->dev, "failed to get ID irq: %d\n", ret);
+ if (ret < 0)
goto err_put_fwnode;
- }
}
typec_cap.prefer_role = TYPEC_NO_PREFERRED_ROLE;
diff --git a/drivers/usb/typec/mux/gpio-sbu-mux.c b/drivers/usb/typec/mux/gpio-sbu-mux.c
index 1834f1a2dd9d..b1aa976aca24 100644
--- a/drivers/usb/typec/mux/gpio-sbu-mux.c
+++ b/drivers/usb/typec/mux/gpio-sbu-mux.c
@@ -17,6 +17,7 @@ struct gpio_sbu_mux {
struct typec_switch_dev *sw;
struct typec_mux_dev *mux;
+ bool mode_switch;
struct mutex lock; /* protect enabled and swapped */
bool enabled;
@@ -40,19 +41,24 @@ static int gpio_sbu_switch_set(struct typec_switch_dev *sw,
enabled = false;
break;
case TYPEC_ORIENTATION_NORMAL:
+ if (!sbu_mux->mode_switch)
+ enabled = true;
swapped = false;
break;
case TYPEC_ORIENTATION_REVERSE:
+ if (!sbu_mux->mode_switch)
+ enabled = true;
swapped = true;
break;
}
- if (enabled != sbu_mux->enabled)
- gpiod_set_value_cansleep(sbu_mux->enable_gpio, enabled);
-
if (swapped != sbu_mux->swapped)
gpiod_set_value_cansleep(sbu_mux->select_gpio, swapped);
+ /* If both enabled and swapped transition, set enable GPIO after to avoid glitches */
+ if (enabled != sbu_mux->enabled)
+ gpiod_set_value_cansleep(sbu_mux->enable_gpio, enabled);
+
sbu_mux->enabled = enabled;
sbu_mux->swapped = swapped;
@@ -120,6 +126,7 @@ static int gpio_sbu_mux_probe(struct platform_device *pdev)
sw_desc.fwnode = dev_fwnode(dev);
sw_desc.set = gpio_sbu_switch_set;
+ sbu_mux->mode_switch = device_property_read_bool(dev, "mode-switch");
sbu_mux->sw = typec_switch_register(dev, &sw_desc);
if (IS_ERR(sbu_mux->sw))
return dev_err_probe(dev, PTR_ERR(sbu_mux->sw),
diff --git a/drivers/usb/typec/mux/it5205.c b/drivers/usb/typec/mux/it5205.c
index 5e1a120b2e3b..2ab2ba6a3cbd 100644
--- a/drivers/usb/typec/mux/it5205.c
+++ b/drivers/usb/typec/mux/it5205.c
@@ -250,7 +250,7 @@ static int it5205_probe(struct i2c_client *client)
if (ret) {
typec_mux_unregister(it->mux);
typec_switch_unregister(it->sw);
- return dev_err_probe(dev, ret, "Failed to request irq\n");
+ return ret;
}
}
diff --git a/drivers/usb/typec/tcpm/tcpci_maxim_core.c b/drivers/usb/typec/tcpm/tcpci_maxim_core.c
index 998693a61839..52dbbbe53691 100644
--- a/drivers/usb/typec/tcpm/tcpci_maxim_core.c
+++ b/drivers/usb/typec/tcpm/tcpci_maxim_core.c
@@ -542,8 +542,7 @@ static int max_tcpci_probe(struct i2c_client *client)
(IRQF_TRIGGER_LOW | IRQF_ONESHOT), dev_name(chip->dev),
chip);
if (ret < 0)
- return dev_err_probe(&client->dev, ret,
- "IRQ initialization failed\n");
+ return ret;
ret = devm_device_init_wakeup(chip->dev);
if (ret)
diff --git a/drivers/usb/typec/tcpm/tcpci_mt6360.c b/drivers/usb/typec/tcpm/tcpci_mt6360.c
index 881ffacbfd77..d4010ea5183b 100644
--- a/drivers/usb/typec/tcpm/tcpci_mt6360.c
+++ b/drivers/usb/typec/tcpm/tcpci_mt6360.c
@@ -167,7 +167,6 @@ static int mt6360_tcpc_probe(struct platform_device *pdev)
ret = devm_request_threaded_irq(mti->dev, mti->irq, NULL, mt6360_irq, IRQF_ONESHOT,
dev_name(&pdev->dev), mti);
if (ret) {
- dev_err(mti->dev, "Failed to register irq\n");
tcpci_unregister_port(mti->tcpci);
return ret;
}
diff --git a/drivers/usb/typec/tcpm/tcpci_mt6370.c b/drivers/usb/typec/tcpm/tcpci_mt6370.c
index 7d6c75c70985..2e85cb05ed37 100644
--- a/drivers/usb/typec/tcpm/tcpci_mt6370.c
+++ b/drivers/usb/typec/tcpm/tcpci_mt6370.c
@@ -168,7 +168,7 @@ static int mt6370_tcpc_probe(struct platform_device *pdev)
ret = devm_request_threaded_irq(dev, irq, NULL, mt6370_irq_handler,
IRQF_ONESHOT, dev_name(dev), priv);
if (ret)
- return dev_err_probe(dev, ret, "Failed to allocate irq\n");
+ return ret;
device_init_wakeup(dev, true);
dev_pm_set_wake_irq(dev, irq);