]> git.karo-electronics.de Git - linux-beck.git/commitdiff
phy: rcar-gen2: add fallback binding
authorSimon Horman <horms+renesas@verge.net.au>
Mon, 7 Mar 2016 01:58:40 +0000 (10:58 +0900)
committerKishon Vijay Abraham I <kishon@ti.com>
Fri, 29 Apr 2016 09:10:07 +0000 (14:40 +0530)
In the case of Renesas R-Car hardware we know that there are generations of
SoCs, e.g. Gen 2 and Gen 3. But beyond that its not clear what the
relationship between IP blocks might be. For example, I believe that
r8a7790 is older than r8a7791 but that doesn't imply that the latter is a
descendant of the former or vice versa.

We can, however, by examining the documentation and behaviour of the
hardware at run-time observe that the current driver implementation appears
to be compatible with the IP blocks on SoCs within a given generation.

For the above reasons and convenience when enabling new SoCs a
per-generation fallback compatibility string scheme being adopted for
drivers for Renesas SoCs.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt
drivers/phy/phy-rcar-gen2.c

index d564ba4f1cf680643522732cfef906428feb6045..91da947ae9b6205fa4cf6fb233e5218abb62b1d0 100644 (file)
@@ -7,6 +7,12 @@ Required properties:
 - compatible: "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC.
              "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC.
              "renesas,usb-phy-r8a7794" if the device is a part of R8A7794 SoC.
+             "renesas,rcar-gen2-usb-phy" for a generic R-Car Gen2 compatible device.
+
+             When compatible with the generic version, nodes must list the
+             SoC-specific version corresponding to the platform first
+             followed by the generic version.
+
 - reg: offset and length of the register block.
 - #address-cells: number of address cells for the USB channel subnodes, must
                  be <1>.
@@ -34,7 +40,7 @@ the USB channel; see the selector meanings below:
 Example (Lager board):
 
        usb-phy@e6590100 {
-               compatible = "renesas,usb-phy-r8a7790";
+               compatible = "renesas,usb-phy-r8a7790", "renesas,rcar-gen2-usb-phy";
                reg = <0 0xe6590100 0 0x100>;
                #address-cells = <1>;
                #size-cells = <0>;
index c7a05996d5c1a841a65e515e746d1008d3d47489..97d4dd6ea9247d8fc3ec36ce4021ed17af1d0ac3 100644 (file)
@@ -195,6 +195,7 @@ static const struct of_device_id rcar_gen2_phy_match_table[] = {
        { .compatible = "renesas,usb-phy-r8a7790" },
        { .compatible = "renesas,usb-phy-r8a7791" },
        { .compatible = "renesas,usb-phy-r8a7794" },
+       { .compatible = "renesas,rcar-gen2-usb-phy" },
        { }
 };
 MODULE_DEVICE_TABLE(of, rcar_gen2_phy_match_table);