phy: rockchip-inno-usb2: Handle bvalid falling
authorSamuel Holland <samuel@sholland.org>
Thu, 14 Apr 2022 03:22:56 +0000 (22:22 -0500)
committerVinod Koul <vkoul@kernel.org>
Wed, 20 Apr 2022 09:14:04 +0000 (14:44 +0530)
Some SoCs have a bvalid falling interrupt, in addition to bvalid rising.
This interrupt can detect OTG cable plugout immediately, so it can avoid
the delay until the next scheduled work.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Tested-by: Michael Riesch <michael.riesch@wolfvision.net>
Link: https://lore.kernel.org/r/20220414032258.40984-6-samuel@sholland.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/rockchip/phy-rockchip-inno-usb2.c

index c694517496f811af624a40fac867553779d05f98..2b29f5dd88736b7781994b1e774d2f4c6169e3a4 100644 (file)
@@ -1345,9 +1345,9 @@ static const struct rockchip_usb2phy_cfg rk3308_phy_cfgs[] = {
                .port_cfgs      = {
                        [USB2PHY_PORT_OTG] = {
                                .phy_sus        = { 0x0100, 8, 0, 0, 0x1d1 },
-                               .bvalid_det_en  = { 0x3020, 2, 2, 0, 1 },
-                               .bvalid_det_st  = { 0x3024, 2, 2, 0, 1 },
-                               .bvalid_det_clr = { 0x3028, 2, 2, 0, 1 },
+                               .bvalid_det_en  = { 0x3020, 3, 2, 0, 3 },
+                               .bvalid_det_st  = { 0x3024, 3, 2, 0, 3 },
+                               .bvalid_det_clr = { 0x3028, 3, 2, 0, 3 },
                                .ls_det_en      = { 0x3020, 0, 0, 0, 1 },
                                .ls_det_st      = { 0x3024, 0, 0, 0, 1 },
                                .ls_det_clr     = { 0x3028, 0, 0, 0, 1 },
@@ -1388,9 +1388,9 @@ static const struct rockchip_usb2phy_cfg rk3328_phy_cfgs[] = {
                .port_cfgs      = {
                        [USB2PHY_PORT_OTG] = {
                                .phy_sus        = { 0x0100, 15, 0, 0, 0x1d1 },
-                               .bvalid_det_en  = { 0x0110, 2, 2, 0, 1 },
-                               .bvalid_det_st  = { 0x0114, 2, 2, 0, 1 },
-                               .bvalid_det_clr = { 0x0118, 2, 2, 0, 1 },
+                               .bvalid_det_en  = { 0x0110, 3, 2, 0, 3 },
+                               .bvalid_det_st  = { 0x0114, 3, 2, 0, 3 },
+                               .bvalid_det_clr = { 0x0118, 3, 2, 0, 3 },
                                .ls_det_en      = { 0x0110, 0, 0, 0, 1 },
                                .ls_det_st      = { 0x0114, 0, 0, 0, 1 },
                                .ls_det_clr     = { 0x0118, 0, 0, 0, 1 },
@@ -1512,9 +1512,9 @@ static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = {
                .port_cfgs      = {
                        [USB2PHY_PORT_OTG] = {
                                .phy_sus        = { 0x0000, 8, 0, 0, 0x1d1 },
-                               .bvalid_det_en  = { 0x0080, 2, 2, 0, 1 },
-                               .bvalid_det_st  = { 0x0084, 2, 2, 0, 1 },
-                               .bvalid_det_clr = { 0x0088, 2, 2, 0, 1 },
+                               .bvalid_det_en  = { 0x0080, 3, 2, 0, 3 },
+                               .bvalid_det_st  = { 0x0084, 3, 2, 0, 3 },
+                               .bvalid_det_clr = { 0x0088, 3, 2, 0, 3 },
                                .utmi_avalid    = { 0x00c0, 10, 10, 0, 1 },
                                .utmi_bvalid    = { 0x00c0, 9, 9, 0, 1 },
                        },