phy: samsung: disable bind/unbind platform driver feature
authorMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 19 Jul 2019 12:25:32 +0000 (14:25 +0200)
committerKishon Vijay Abraham I <kishon@ti.com>
Fri, 23 Aug 2019 04:10:59 +0000 (09:40 +0530)
Samsung PHY drivers control the power to the SoC core components needed by
their client devices (USB HCDs, SATA, camera ISP bridge, DP encoder) to
properly operate. Disabling PHYs in runtime usually causes the client
device to crash with external abort exception or similar issue due to lack
of API to notify clients about PHY removal. This patch removes the
possiblity to unbind Samsung Exynos PHY drivers in runtime.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/samsung/phy-exynos-dp-video.c
drivers/phy/samsung/phy-exynos-mipi-video.c
drivers/phy/samsung/phy-exynos-pcie.c
drivers/phy/samsung/phy-exynos5-usbdrd.c
drivers/phy/samsung/phy-exynos5250-sata.c
drivers/phy/samsung/phy-samsung-usb2.c

index aebd216..6c607df 100644 (file)
@@ -109,6 +109,7 @@ static struct platform_driver exynos_dp_video_phy_driver = {
        .driver = {
                .name   = "exynos-dp-video-phy",
                .of_match_table = exynos_dp_video_phy_of_match,
+               .suppress_bind_attrs = true,
        }
 };
 module_platform_driver(exynos_dp_video_phy_driver);
index 3784bf1..bb51195 100644 (file)
@@ -359,6 +359,7 @@ static struct platform_driver exynos_mipi_video_phy_driver = {
        .driver = {
                .of_match_table = exynos_mipi_video_phy_of_match,
                .name  = "exynos-mipi-video-phy",
+               .suppress_bind_attrs = true,
        }
 };
 module_platform_driver(exynos_mipi_video_phy_driver);
index 1b4ba8b..659e7ae 100644 (file)
@@ -272,6 +272,7 @@ static struct platform_driver exynos_pcie_phy_driver = {
        .driver = {
                .of_match_table = exynos_pcie_phy_match,
                .name           = "exynos_pcie_phy",
+               .suppress_bind_attrs = true,
        }
 };
 
index 646259b..e510732 100644 (file)
@@ -953,6 +953,7 @@ static struct platform_driver exynos5_usb3drd_phy = {
        .driver = {
                .of_match_table = exynos5_usbdrd_phy_of_match,
                .name           = "exynos5_usb3drd_phy",
+               .suppress_bind_attrs = true,
        }
 };
 
index 9e5fc12..4dd7324 100644 (file)
@@ -237,6 +237,7 @@ static struct platform_driver exynos_sata_phy_driver = {
        .driver = {
                .of_match_table = exynos_sata_phy_of_match,
                .name  = "samsung,sata-phy",
+               .suppress_bind_attrs = true,
        }
 };
 module_platform_driver(exynos_sata_phy_driver);
index 6c82f4f..090aa02 100644 (file)
@@ -250,6 +250,7 @@ static struct platform_driver samsung_usb2_phy_driver = {
        .driver = {
                .of_match_table = samsung_usb2_phy_of_match,
                .name           = "samsung-usb2-phy",
+               .suppress_bind_attrs = true,
        }
 };