Skip to content

Commit

Permalink
ARM: stm32: Fix livetree conversion on STM32MP15xx DHSOM
Browse files Browse the repository at this point in the history
Unlike fdt_node_check_compatible() which returns 0 if node is compatible,
ofnode_device_is_compatible() return true which is non-zero if node is
compatible. The intention of the code is to exit from the function in
case the node is not compatible with "micrel,ks8851-mll". Add the missing
invert into the conditional to reinstate original behavior.

This exposes a follow up problem caused by conversion to DM based FMC2 EBI
driver, where the FMC2 EBI is not configured when accessed by this code.
Probe the KS8851 MAC, which also configures the FMC2 EBI as a dependency,
so that the KS8851 MAC CCR register can be accessed over the FMC2 EBI bus
and checked for EEPROM present bit.

Fixes: 5a605b7 ("board: dhelectronics: stm32mp1: convert to livetree")
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Patrice Chotard <[email protected]>
  • Loading branch information
Marek Vasut authored and Patrice Chotard committed Jun 14, 2024
1 parent 12dfaa1 commit 55df13d
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions board/dhelectronics/dh_stm32mp1/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,25 @@

static bool dh_stm32_mac_is_in_ks8851(void)
{
ofnode node;
struct udevice *udev;
u32 reg, cider, ccr;
char path[256];
ofnode node;
int ret;

node = ofnode_path("ethernet1");
if (!ofnode_valid(node))
return false;

if (ofnode_device_is_compatible(node, "micrel,ks8851-mll"))
ret = ofnode_get_path(node, path, sizeof(path));
if (ret)
return false;

ret = uclass_get_device_by_of_path(UCLASS_ETH, path, &udev);
if (ret)
return false;

if (!ofnode_device_is_compatible(node, "micrel,ks8851-mll"))
return false;

/*
Expand Down

0 comments on commit 55df13d

Please sign in to comment.