mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
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:
8
board/adi/carriers/Makefile
Normal file
8
board/adi/carriers/Makefile
Normal 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
|
||||
14
board/adi/carriers/somcrr.h
Normal file
14
board/adi/carriers/somcrr.h
Normal 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
|
||||
19
board/adi/carriers/somcrr_common.c
Normal file
19
board/adi/carriers/somcrr_common.c
Normal 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);
|
||||
}
|
||||
38
board/adi/carriers/somcrr_ezkit.c
Normal file
38
board/adi/carriers/somcrr_ezkit.c
Normal 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", ð1);
|
||||
gpio_hog_lookup_name("eth1-reset", ð1_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", ð1);
|
||||
gpio_hog_lookup_name("eth1-reset", ð1_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);
|
||||
}
|
||||
24
board/adi/carriers/somcrr_ezlite.c
Normal file
24
board/adi/carriers/somcrr_ezlite.c
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user