mx6cuboxi: fix board detection while patching device-tree phy nodes

ft_board_setup relies on the board_type() function to optimize which phy
nodes need to be enabled for Linux.
Add calls to setup and release the board-detect GPIOs.

Also fix the switch-case statement to only enable phy address 4 for
Cubox and unknown devices.

Fixes: 741ce308 ("mx6cuboxi: fixup dtb ethernet phy nodes before booting an OS")
Signed-off-by: Josua Mayer <josua@solid-run.com>
This commit is contained in:
Josua Mayer 2022-06-16 11:40:15 +03:00 committed by Stefano Babic
parent 408349acbf
commit 6cf1cc987f

View file

@ -449,15 +449,26 @@ int ft_board_setup(void *fdt, struct bd_info *bd)
int node_phy0, node_phy1, node_phy4;
int ret, phy;
bool enable_phy0 = false, enable_phy1 = false, enable_phy4 = false;
enum board_type board;
// detect device
request_detect_gpios();
board = board_type();
free_detect_gpios();
// detect phy
phy = find_ethernet_phy();
if (phy == 0 || phy == 4) {
enable_phy0 = true;
switch (board_type()) {
switch (board) {
case HUMMINGBOARD:
case HUMMINGBOARD2:
/* atheros phy may appear only at address 0 */
break;
case CUBOXI:
case UNKNOWN:
default:
/* atheros phy may appear at either address 0 or 4 */
enable_phy4 = true;
}
} else if (phy == 1) {