summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mvebu/arm64-common.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2016-10-25 18:12:40 +0200
committerStefan Roese <sr@denx.de>2016-12-05 13:28:23 +0100
commitd7dd358f93c03004ba42e054c95e21596a909de6 (patch)
tree0ca4780f2640be5eb1e5c89ddf36532915e2d516 /arch/arm/mach-mvebu/arm64-common.c
parentaf4c271c33d25ff3e6fe9fe998d703ee9a2f3f29 (diff)
arm64: mvebu: Init COMPHY from the slave-CP on the A8k
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>
Diffstat (limited to 'arch/arm/mach-mvebu/arm64-common.c')
-rw-r--r--arch/arm/mach-mvebu/arm64-common.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/arm/mach-mvebu/arm64-common.c b/arch/arm/mach-mvebu/arm64-common.c
index 7055a81de3..1fc2ff2f7c 100644
--- a/arch/arm/mach-mvebu/arm64-common.c
+++ b/arch/arm/mach-mvebu/arm64-common.c
@@ -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 */