Merge branch 'master' of git://git.denx.de/u-boot-socfpga

lime2-spi
Tom Rini 6 years ago
commit 1b484736ce
  1. 2
      arch/arm/mach-socfpga/include/mach/reset_manager_s10.h
  2. 5
      arch/arm/mach-socfpga/misc_s10.c
  3. 35
      arch/arm/mach-socfpga/reset_manager_s10.c
  4. 11
      drivers/gpio/dwapb_gpio.c
  5. 1
      tools/socfpgaimage.c

@ -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…
Cancel
Save