// SPDX-License-Identifier: GPL-2.0+ | |
/* | |
* Copyright 2022 Marek Vasut <marex@denx.de> | |
*/ | |
#include <common.h> | |
#include <asm/io.h> | |
#include <asm-generic/gpio.h> | |
#include "lpddr4_timing.h" | |
DECLARE_GLOBAL_DATA_PTR; | |
u8 dh_get_memcfg(void) | |
{ | |
struct gpio_desc gpio[4]; | |
u8 memcfg = 0; | |
ofnode node; | |
int i, ret; | |
node = ofnode_path("/config"); | |
if (!ofnode_valid(node)) { | |
printf("%s: no /config node?\n", __func__); | |
return BIT(2) | BIT(0); | |
} | |
ret = gpio_request_list_by_name_nodev(node, | |
"dh,ram-coding-gpios", | |
gpio, ARRAY_SIZE(gpio), | |
GPIOD_IS_IN); | |
for (i = 0; i < ret; i++) | |
memcfg |= !!dm_gpio_get_value(&(gpio[i])) << i; | |
gpio_free_list_nodev(gpio, ret); | |
return memcfg; | |
} |