static int setup_fec(int fec_id) { struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR; int ret; if (fec_id == 0) { /* * Use 50M anatop loopback REF_CLK1 for ENET1, * clear gpr1[13], set gpr1[17]. */ clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC1_MASK, IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK); } else { /* * Use 50M anatop loopback REF_CLK2 for ENET2, * clear gpr1[14], set gpr1[18]. */ clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC2_MASK, IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK); } ret = enable_fec_anatop_clock(fec_id, ENET_50MHZ); if (ret) return ret; enable_enet_clk(1); return 0; }
static int setup_fec(int fec_id) { struct iomuxc_gpr_base_regs *const iomuxc_gpr_regs = (struct iomuxc_gpr_base_regs *) IOMUXC_GPR_BASE_ADDR; int ret; if (0 == fec_id) { if (check_module_fused(MX6_MODULE_ENET1)) return -1; /* Use 50M anatop loopback REF_CLK1 for ENET1, clear gpr1[13], set gpr1[17]*/ clrsetbits_le32(&iomuxc_gpr_regs->gpr[1], IOMUX_GPR1_FEC1_MASK, IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK); } else { if (check_module_fused(MX6_MODULE_ENET2)) return -1; /* Use 50M anatop loopback REF_CLK2 for ENET2, clear gpr1[14], set gpr1[18]*/ clrsetbits_le32(&iomuxc_gpr_regs->gpr[1], IOMUX_GPR1_FEC2_MASK, IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK); } ret = enable_fec_anatop_clock(fec_id, ENET_50MHZ); if (ret) return ret; enable_enet_clk(1); return 0; }
int board_eth_init(bd_t *bis) { setup_iomux_enet(); enable_enet_clk(1); return cpu_eth_init(bis); }
int board_eth_init(bd_t *bis) { int res = handle_mac_address(); if (res) puts("No MAC address found\n"); SETUP_IOMUX_PADS(enet_pads); /* phy reset */ gpio_direction_output(CM_FX6_ENET_NRST, 0); udelay(500); gpio_set_value(CM_FX6_ENET_NRST, 1); enable_enet_clk(1); return cpu_eth_init(bis); }
int board_eth_init(bd_t *bis) { int err; err = handle_mac_address(); if (err) puts("No MAC address found\n"); SETUP_IOMUX_PADS(enet_pads); /* phy reset */ err = gpio_request(CM_FX6_ENET_NRST, "enet_nrst"); if (err) printf("Etnernet NRST gpio request failed: %d\n", err); gpio_direction_output(CM_FX6_ENET_NRST, 0); udelay(500); gpio_set_value(CM_FX6_ENET_NRST, 1); enable_enet_clk(1); return cpu_eth_init(bis); }
int board_eth_init(bd_t *bis) { int err; if (handle_mac_address("ethaddr", CONFIG_SYS_I2C_EEPROM_BUS)) printf(NO_MAC_ADDR, "primary NIC"); if (handle_mac_address("eth1addr", SB_FX6_I2C_EEPROM_BUS)) printf(NO_MAC_ADDR, "secondary NIC"); SETUP_IOMUX_PADS(enet_pads); /* phy reset */ err = gpio_request(CM_FX6_ENET_NRST, "enet_nrst"); if (err) printf("Etnernet NRST gpio request failed: %d\n", err); gpio_direction_output(CM_FX6_ENET_NRST, 0); udelay(500); gpio_set_value(CM_FX6_ENET_NRST, 1); enable_enet_clk(1); return cpu_eth_init(bis); }