arm64: mvebu: Init COMPHY from the slave-CP on the A8k
authorStefan Roese <sr@denx.de>
Tue, 25 Oct 2016 16:12:40 +0000 (18:12 +0200)
committerStefan Roese <sr@denx.de>
Mon, 5 Dec 2016 12:28:23 +0000 (13:28 +0100)
The Armada8k implements 2 CPs (communication processors) and the 2nd
CP also is equipped with a COMPHY controller. This patch now loops
over all enabled MISC devices (CP110) enabled in the DT to initialize
all CPs.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Nadav Haklai <nadavh@marvell.com>
Cc: Neta Zur Hershkovits <neta@marvell.com>
Cc: Kostya Porotchkin <kostap@marvell.com>
Cc: Omri Itach <omrii@marvell.com>
Cc: Igal Liberman <igall@marvell.com>
Cc: Haim Boot <hayim@marvell.com>
Cc: Hanna Hawa <hannah@marvell.com>
arch/arm/mach-mvebu/arm64-common.c

index 7055a81de32279cb7a18b8ec541e6e6629e11ae1..1fc2ff2f7cf3758a1a88b75ebaf374e7c812820a 100644 (file)
@@ -109,12 +109,20 @@ int arch_early_init_r(void)
 {
        struct udevice *dev;
        int ret;
-
-       /* Call the comphy code via the MISC uclass driver */
-       ret = uclass_get_device(UCLASS_MISC, 0, &dev);
-       if (ret) {
-               debug("COMPHY init failed: %d\n", ret);
-               return -ENODEV;
+       int i;
+
+       /*
+        * Loop over all MISC uclass drivers to call the comphy code
+        * and init all CP110 devices enabled in the DT
+        */
+       i = 0;
+       while (1) {
+               /* Call the comphy code via the MISC uclass driver */
+               ret = uclass_get_device(UCLASS_MISC, i++, &dev);
+
+               /* We're done, once no further CP110 device is found */
+               if (ret)
+                       break;
        }
 
        /* Cause the SATA device to do its early init */