board: adi: Add SOMCRR infrastructure

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.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Vasileios Bimpikas <vasileios.bimpikas@analog.com>
Signed-off-by: Utsav Agarwal <utsav.agarwal@analog.com>
Signed-off-by: Arturs Artamonovs <arturs.artamonovs@analog.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
This commit is contained in:
Greg Malysa
2025-12-11 03:03:57 -05:00
committed by Tom Rini
parent b36007b016
commit 48a45b74aa
5 changed files with 103 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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, 0);
}
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, 0);
dm_gpio_set_value(eth1_reset, 1);
dm_gpio_set_value(gige_reset, 1);
}

View File

@@ -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, 0);
}
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, 1);
}