Merge branch 'master' of git://git.denx.de/u-boot-socfpga
This commit is contained in:
commit
1b484736ce
@ -108,8 +108,6 @@ struct socfpga_reset_manager {
|
||||
#define RSTMGR_GPIO1 RSTMGR_DEFINE(2, 25)
|
||||
#define RSTMGR_SDR RSTMGR_DEFINE(3, 6)
|
||||
|
||||
void socfpga_emac_manage_reset(const unsigned int of_reset_id, u32 state);
|
||||
|
||||
/* Create a human-readable reference to SoCFPGA reset. */
|
||||
#define SOCFPGA_RESET(_name) RSTMGR_##_name
|
||||
|
||||
|
@ -36,7 +36,8 @@ static u32 socfpga_phymode_setup(u32 gmac_index, const char *phymode)
|
||||
if (!phymode)
|
||||
return -EINVAL;
|
||||
|
||||
if (!strcmp(phymode, "mii") || !strcmp(phymode, "gmii"))
|
||||
if (!strcmp(phymode, "mii") || !strcmp(phymode, "gmii") ||
|
||||
!strcmp(phymode, "sgmii"))
|
||||
modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII;
|
||||
else if (!strcmp(phymode, "rgmii"))
|
||||
modereg = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII;
|
||||
@ -58,7 +59,7 @@ static int socfpga_set_phymode(void)
|
||||
struct fdtdec_phandle_args args;
|
||||
const char *phy_mode;
|
||||
u32 gmac_index;
|
||||
int nodes[2]; /* Max. 3 GMACs */
|
||||
int nodes[3]; /* Max. 3 GMACs */
|
||||
int ret, count;
|
||||
int i, node;
|
||||
|
||||
|
@ -93,41 +93,6 @@ void socfpga_bridges_reset(int enable)
|
||||
}
|
||||
}
|
||||
|
||||
/* of_reset_id: emac reset id
|
||||
* state: 0 - disable reset, !0 - enable reset
|
||||
*/
|
||||
void socfpga_emac_manage_reset(const unsigned int of_reset_id, u32 state)
|
||||
{
|
||||
u32 reset_emac;
|
||||
u32 reset_emacocp;
|
||||
|
||||
/* hardcode this now */
|
||||
switch (of_reset_id) {
|
||||
case EMAC0_RESET:
|
||||
reset_emac = SOCFPGA_RESET(EMAC0);
|
||||
reset_emacocp = SOCFPGA_RESET(EMAC0_OCP);
|
||||
break;
|
||||
case EMAC1_RESET:
|
||||
reset_emac = SOCFPGA_RESET(EMAC1);
|
||||
reset_emacocp = SOCFPGA_RESET(EMAC1_OCP);
|
||||
break;
|
||||
case EMAC2_RESET:
|
||||
reset_emac = SOCFPGA_RESET(EMAC2);
|
||||
reset_emacocp = SOCFPGA_RESET(EMAC2_OCP);
|
||||
break;
|
||||
default:
|
||||
printf("GMAC: Invalid reset ID (%i)!\n", of_reset_id);
|
||||
hang();
|
||||
break;
|
||||
}
|
||||
|
||||
/* Reset ECC OCP first */
|
||||
socfpga_per_reset(reset_emacocp, state);
|
||||
|
||||
/* Release the EMAC controller from reset */
|
||||
socfpga_per_reset(reset_emac, state);
|
||||
}
|
||||
|
||||
/*
|
||||
* Release peripherals from reset based on handoff
|
||||
*/
|
||||
|
@ -171,8 +171,7 @@ static int gpio_dwapb_bind(struct udevice *dev)
|
||||
if (!fdtdec_get_bool(blob, node, "gpio-controller"))
|
||||
continue;
|
||||
|
||||
plat = NULL;
|
||||
plat = calloc(1, sizeof(*plat));
|
||||
plat = devm_kcalloc(dev, 1, sizeof(*plat), GFP_KERNEL);
|
||||
if (!plat)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -181,23 +180,17 @@ static int gpio_dwapb_bind(struct udevice *dev)
|
||||
plat->pins = fdtdec_get_int(blob, node, "snps,nr-gpios", 0);
|
||||
plat->name = fdt_stringlist_get(blob, node, "bank-name", 0,
|
||||
NULL);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
ret = device_bind(dev, dev->driver, plat->name,
|
||||
plat, -1, &subdev);
|
||||
if (ret)
|
||||
goto err;
|
||||
return ret;
|
||||
|
||||
dev_set_of_offset(subdev, node);
|
||||
bank++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
free(plat);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int gpio_dwapb_remove(struct udevice *dev)
|
||||
|
@ -191,6 +191,7 @@ static int sfp_verify_header(const uint8_t *buf, uint8_t *ver)
|
||||
if (hdr_csum != sfp_csum)
|
||||
return -EINVAL;
|
||||
|
||||
*ver = header_v0.version;
|
||||
return img_len;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user