phy-sun4i-usb: Add support for the usb-phys on the sun8i-a23 SoC
authorHans de Goede <hdegoede@redhat.com>
Sat, 13 Jun 2015 12:37:48 +0000 (14:37 +0200)
committerKishon Vijay Abraham I <kishon@ti.com>
Sat, 25 Jul 2015 10:15:47 +0000 (15:45 +0530)
The usb-phys on the sun8i-a23 SoC have the same setup wrt clocks as on the
sun6i-a31 SoC, but there are only 2 instead of 3 like on the sun5i-a13 SoC.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
drivers/phy/phy-sun4i-usb.c

index 557fa9940164165bc590408ffded1bd7cec56389..f0c640adee64fbfa80d957f114921628fbb18555 100644 (file)
@@ -7,6 +7,7 @@ Required properties:
   * allwinner,sun5i-a13-usb-phy
   * allwinner,sun6i-a31-usb-phy
   * allwinner,sun7i-a20-usb-phy
+  * allwinner,sun8i-a23-usb-phy
 - reg : a list of offset + length pairs
 - reg-names :
   * "phy_ctrl"
@@ -17,6 +18,7 @@ Required properties:
 - clock-names :
   * "usb_phy" for sun4i, sun5i or sun7i
   * "usb0_phy", "usb1_phy" and "usb2_phy" for sun6i
+  * "usb0_phy", "usb1_phy" for sun8i
 - resets : a list of phandle + reset specifier pairs
 - reset-names :
   * "usb0_reset"
index 50ecab9d73df4f22c0d25f53c734465b322a5e38..00424dde79c120d8c9b01f1e9553d35319198680 100644 (file)
@@ -442,7 +442,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
        INIT_DELAYED_WORK(&data->detect, sun4i_usb_phy0_id_vbus_det_scan);
        dev_set_drvdata(dev, data);
 
-       if (of_device_is_compatible(np, "allwinner,sun5i-a13-usb-phy"))
+       if (of_device_is_compatible(np, "allwinner,sun5i-a13-usb-phy") ||
+           of_device_is_compatible(np, "allwinner,sun8i-a23-usb-phy"))
                data->num_phys = 2;
        else
                data->num_phys = 3;
@@ -453,7 +454,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
        else
                data->disc_thresh = 3;
 
-       if (of_device_is_compatible(np, "allwinner,sun6i-a31-usb-phy"))
+       if (of_device_is_compatible(np, "allwinner,sun6i-a31-usb-phy") ||
+           of_device_is_compatible(np, "allwinner,sun8i-a23-usb-phy"))
                dedicated_clocks = true;
        else
                dedicated_clocks = false;
@@ -588,6 +590,7 @@ static const struct of_device_id sun4i_usb_phy_of_match[] = {
        { .compatible = "allwinner,sun5i-a13-usb-phy" },
        { .compatible = "allwinner,sun6i-a31-usb-phy" },
        { .compatible = "allwinner,sun7i-a20-usb-phy" },
+       { .compatible = "allwinner,sun8i-a23-usb-phy" },
        { },
 };
 MODULE_DEVICE_TABLE(of, sun4i_usb_phy_of_match);