This adds infrastructure and shared library code for building targets
that use the ADI SOMCRR-EZKIT and SOMCRR-EZLITE carrier boards. These
are not used directly as board targets in their own right.

Co-developed-by: Nathan Barrett-Morrison <nathan.morri...@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morri...@timesys.com>
Signed-off-by: Vasileios Bimpikas <vasileios.bimpi...@analog.com>
Signed-off-by: Utsav Agarwal <utsav.agar...@analog.com>
Signed-off-by: Arturs Artamonovs <arturs.artamon...@analog.com>
Signed-off-by: Greg Malysa <malysag...@gmail.com>
---

 board/adi/carriers/Makefile        |  8 +++++++
 board/adi/carriers/somcrr.h        | 14 +++++++++++
 board/adi/carriers/somcrr_common.c | 19 +++++++++++++++
 board/adi/carriers/somcrr_ezkit.c  | 38 ++++++++++++++++++++++++++++++
 board/adi/carriers/somcrr_ezlite.c | 24 +++++++++++++++++++
 5 files changed, 103 insertions(+)
 create mode 100644 board/adi/carriers/Makefile
 create mode 100644 board/adi/carriers/somcrr.h
 create mode 100644 board/adi/carriers/somcrr_common.c
 create mode 100644 board/adi/carriers/somcrr_ezkit.c
 create mode 100644 board/adi/carriers/somcrr_ezlite.c

diff --git a/board/adi/carriers/Makefile b/board/adi/carriers/Makefile
new file mode 100644
index 00000000000..cefd2cc837f
--- /dev/null
+++ b/board/adi/carriers/Makefile
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# (C) Copyright 2024 - Analog Devices, Inc.
+#
+
+obj-y += somcrr_common.o
+obj-$(CONFIG_ADI_CARRIER_SOMCRR_EZKIT) += somcrr_ezkit.o
+obj-$(CONFIG_ADI_CARRIER_SOMCRR_EZLITE) += somcrr_ezlite.o
diff --git a/board/adi/carriers/somcrr.h b/board/adi/carriers/somcrr.h
new file mode 100644
index 00000000000..01e908c67f8
--- /dev/null
+++ b/board/adi/carriers/somcrr.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * (C) Copyright 2025 - Analog Devices, Inc.
+ *
+ */
+
+#ifndef BOARD_ADI_CARRIERS_SOMCRR_H
+#define BOARD_ADI_CARRIERS_SOMCRR_H
+
+void adi_somcrr_init_ethernet(void);
+void adi_somcrr_enable_ethernet(void);
+void adi_somcrr_disable_ethernet(void);
+
+#endif
diff --git a/board/adi/carriers/somcrr_common.c 
b/board/adi/carriers/somcrr_common.c
new file mode 100644
index 00000000000..34ae48f31d2
--- /dev/null
+++ b/board/adi/carriers/somcrr_common.c
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2025 - Analog Devices, Inc.
+ */
+
+#include <asm/arch-adi/sc5xx/sc5xx.h>
+#include <linux/delay.h>
+
+#include "somcrr.h"
+
+void adi_somcrr_init_ethernet(void)
+{
+       adi_somcrr_enable_ethernet();
+       mdelay(20);
+       adi_somcrr_disable_ethernet();
+       mdelay(90);
+       adi_somcrr_enable_ethernet();
+       mdelay(20);
+}
diff --git a/board/adi/carriers/somcrr_ezkit.c 
b/board/adi/carriers/somcrr_ezkit.c
new file mode 100644
index 00000000000..34572ba847e
--- /dev/null
+++ b/board/adi/carriers/somcrr_ezkit.c
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2025 - Analog Devices, Inc.
+ */
+
+#include <asm/gpio.h>
+
+#include "somcrr.h"
+
+void adi_somcrr_enable_ethernet(void)
+{
+       struct gpio_desc *eth1;
+       struct gpio_desc *eth1_reset;
+       struct gpio_desc *gige_reset;
+
+       gpio_hog_lookup_name("~eth1-en", &eth1);
+       gpio_hog_lookup_name("~eth1-reset", &eth1_reset);
+       gpio_hog_lookup_name("~gige-reset", &gige_reset);
+
+       dm_gpio_set_value(eth1, 1);
+       dm_gpio_set_value(eth1_reset, 0);
+       dm_gpio_set_value(gige_reset, 1);
+}
+
+void adi_somcrr_disable_ethernet(void)
+{
+       struct gpio_desc *eth1;
+       struct gpio_desc *eth1_reset;
+       struct gpio_desc *gige_reset;
+
+       gpio_hog_lookup_name("~eth1-en", &eth1);
+       gpio_hog_lookup_name("~eth1-reset", &eth1_reset);
+       gpio_hog_lookup_name("~gige-reset", &gige_reset);
+
+       dm_gpio_set_value(eth1, 1);
+       dm_gpio_set_value(eth1_reset, 0);
+       dm_gpio_set_value(gige_reset, 0);
+}
diff --git a/board/adi/carriers/somcrr_ezlite.c 
b/board/adi/carriers/somcrr_ezlite.c
new file mode 100644
index 00000000000..010f36823ea
--- /dev/null
+++ b/board/adi/carriers/somcrr_ezlite.c
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2025 - Analog Devices, Inc.
+ */
+
+#include <asm/gpio.h>
+
+#include "somcrr.h"
+
+void adi_somcrr_enable_ethernet(void)
+{
+       struct gpio_desc *gige_reset;
+
+       gpio_hog_lookup_name("~eth0-reset", &gige_reset);
+       dm_gpio_set_value(gige_reset, 1);
+}
+
+void adi_somcrr_disable_ethernet(void)
+{
+       struct gpio_desc *gige_reset;
+
+       gpio_hog_lookup_name("~eth0-reset", &gige_reset);
+       dm_gpio_set_value(gige_reset, 0);
+}
-- 
2.45.2

Reply via email to