Lines Matching +full:4 +full:- +full:lane
4 * SPDX-License-Identifier: GPL-2.0+
37 #define EMI1_SLOT4 4
58 static u8 lane_to_slot_fsm2[] = {3, 3, 3, 3, 4, 4, 4, 4};
59 static u8 slot_qsgmii_phyaddr[5][4] = {
62 {4, 5, 6, 7},
102 brdcfg4 = QIXIS_READ(brdcfg[4]); in t4240qds_mux_mdio()
105 QIXIS_WRITE(brdcfg[4], brdcfg4); in t4240qds_mux_mdio()
112 struct t4240qds_mdio *priv = bus->priv; in t4240qds_mdio_read()
114 t4240qds_mux_mdio(priv->muxval); in t4240qds_mdio_read()
116 return priv->realbus->read(priv->realbus, addr, devad, regnum); in t4240qds_mdio_read()
122 struct t4240qds_mdio *priv = bus->priv; in t4240qds_mdio_write()
124 t4240qds_mux_mdio(priv->muxval); in t4240qds_mdio_write()
126 return priv->realbus->write(priv->realbus, addr, devad, regnum, value); in t4240qds_mdio_write()
131 struct t4240qds_mdio *priv = bus->priv; in t4240qds_mdio_reset()
133 return priv->realbus->reset(priv->realbus); in t4240qds_mdio_reset()
143 return -1; in t4240qds_mdio_init()
150 return -1; in t4240qds_mdio_init()
153 bus->read = t4240qds_mdio_read; in t4240qds_mdio_init()
154 bus->write = t4240qds_mdio_write; in t4240qds_mdio_init()
155 bus->reset = t4240qds_mdio_reset; in t4240qds_mdio_init()
156 strcpy(bus->name, t4240qds_mdio_name_for_muxval(muxval)); in t4240qds_mdio_init()
158 pmdio->realbus = miiphy_get_dev_by_name(realbusname); in t4240qds_mdio_init()
160 if (!pmdio->realbus) { in t4240qds_mdio_init()
164 return -1; in t4240qds_mdio_init()
167 pmdio->muxval = muxval; in t4240qds_mdio_init()
168 bus->priv = pmdio; in t4240qds_mdio_init()
178 u32 prtcl2 = in_be32(&gur->rcwsr[4]) & FSL_CORENET2_RCWSR4_SRDS2_PRTCL; in board_ft_fman_fixup_port()
279 char lane_mode[20] = {"10GBASE-KR"}; in board_ft_fman_fixup_port()
280 char buf[32] = "serdes-2,"; in board_ft_fman_fixup_port()
289 sprintf(buf, "%s%s%s", buf, "lane-a,", in board_ft_fman_fixup_port()
298 sprintf(buf, "%s%s%s", buf, "lane-b,", in board_ft_fman_fixup_port()
307 sprintf(buf, "%s%s%s", buf, "lane-d,", in board_ft_fman_fixup_port()
316 sprintf(buf, "%s%s%s", buf, "lane-c,", in board_ft_fman_fixup_port()
325 /* fixed-link is used for XFI fiber cable */ in board_ft_fman_fixup_port()
326 fdt_delprop(blob, offset, "phy-handle"); in board_ft_fman_fixup_port()
332 fdt_setprop(blob, offset, "fixed-link", &f_link, in board_ft_fman_fixup_port()
337 "fsl,fman-memac-mdio", pa + 0x1000); in board_ft_fman_fixup_port()
338 fdt_setprop_string(blob, off, "lane-instance", buf); in board_ft_fman_fixup_port()
347 u32 prtcl2 = in_be32(&gur->rcwsr[4]) & FSL_CORENET2_RCWSR4_SRDS2_PRTCL; in fdt_fixup_board_enet()
420 for (i = 1; i <= 4; i++) { in initialize_qsgmiiphy_fix()
471 case 4: in initialize_qsgmiiphy_fix()
476 slot_qsgmii_phyaddr[4][0] = SGMII_CARD_PORT1_PHY_ADDR; in initialize_qsgmiiphy_fix()
477 slot_qsgmii_phyaddr[4][1] = SGMII_CARD_PORT2_PHY_ADDR; in initialize_qsgmiiphy_fix()
478 slot_qsgmii_phyaddr[4][2] = SGMII_CARD_PORT3_PHY_ADDR; in initialize_qsgmiiphy_fix()
479 slot_qsgmii_phyaddr[4][3] = SGMII_CARD_PORT4_PHY_ADDR; in initialize_qsgmiiphy_fix()
490 int i, idx, lane, slot, interface; in board_eth_init() local
496 srds_prtcl_s1 = in_be32(&gur->rcwsr[4]) & in board_eth_init()
499 srds_prtcl_s2 = in_be32(&gur->rcwsr[4]) & in board_eth_init()
522 /* Register the muxing front-ends to the MDIO buses */ in board_eth_init()
537 case 4: in board_eth_init()
600 idx = i - FM1_DTSEC1; in board_eth_init()
607 lane = serdes_get_first_lane(FSL_SRDS_1, in board_eth_init()
610 lane = serdes_get_first_lane(FSL_SRDS_1, in board_eth_init()
612 if (lane < 0) in board_eth_init()
614 slot = lane_to_slot_fsm1[lane]; in board_eth_init()
618 lane = serdes_get_first_lane(FSL_SRDS_1, in board_eth_init()
620 if (lane < 0) in board_eth_init()
622 slot = lane_to_slot_fsm1[lane]; in board_eth_init()
626 if (QIXIS_READ(present2) & (1 << (slot - 1))) in board_eth_init()
657 idx = i - FM1_10GEC1; in board_eth_init()
661 /* A fake PHY address to make U-Boot happy */ in board_eth_init()
664 lane = serdes_get_first_lane(FSL_SRDS_1, in board_eth_init()
666 if (lane < 0) in board_eth_init()
668 slot = lane_to_slot_fsm1[lane]; in board_eth_init()
669 if (QIXIS_READ(present2) & (1 << (slot - 1))) in board_eth_init()
684 case 4: in board_eth_init()
704 fm_info_set_phy_address(FM2_DTSEC1, slot_qsgmii_phyaddr[4][0]); in board_eth_init()
705 fm_info_set_phy_address(FM2_DTSEC2, slot_qsgmii_phyaddr[4][1]); in board_eth_init()
706 fm_info_set_phy_address(FM2_DTSEC3, slot_qsgmii_phyaddr[4][2]); in board_eth_init()
707 fm_info_set_phy_address(FM2_DTSEC4, slot_qsgmii_phyaddr[4][3]); in board_eth_init()
714 fm_info_set_phy_address(FM2_DTSEC1, slot_qsgmii_phyaddr[4][0]); in board_eth_init()
715 fm_info_set_phy_address(FM2_DTSEC2, slot_qsgmii_phyaddr[4][1]); in board_eth_init()
716 fm_info_set_phy_address(FM2_DTSEC3, slot_qsgmii_phyaddr[4][2]); in board_eth_init()
717 fm_info_set_phy_address(FM2_DTSEC4, slot_qsgmii_phyaddr[4][3]); in board_eth_init()
726 fm_info_set_phy_address(FM2_DTSEC1, slot_qsgmii_phyaddr[4][0]); in board_eth_init()
727 fm_info_set_phy_address(FM2_DTSEC2, slot_qsgmii_phyaddr[4][1]); in board_eth_init()
728 fm_info_set_phy_address(FM2_DTSEC3, slot_qsgmii_phyaddr[4][2]); in board_eth_init()
729 fm_info_set_phy_address(FM2_DTSEC4, slot_qsgmii_phyaddr[4][3]); in board_eth_init()
747 fm_info_set_phy_address(FM2_DTSEC1, slot_qsgmii_phyaddr[4][0]); in board_eth_init()
748 fm_info_set_phy_address(FM2_DTSEC2, slot_qsgmii_phyaddr[4][1]); in board_eth_init()
749 fm_info_set_phy_address(FM2_DTSEC3, slot_qsgmii_phyaddr[4][2]); in board_eth_init()
750 fm_info_set_phy_address(FM2_DTSEC4, slot_qsgmii_phyaddr[4][3]); in board_eth_init()
759 fm_info_set_phy_address(FM2_DTSEC1, slot_qsgmii_phyaddr[4][0]); in board_eth_init()
760 fm_info_set_phy_address(FM2_DTSEC2, slot_qsgmii_phyaddr[4][1]); in board_eth_init()
761 fm_info_set_phy_address(FM2_DTSEC3, slot_qsgmii_phyaddr[4][2]); in board_eth_init()
762 fm_info_set_phy_address(FM2_DTSEC4, slot_qsgmii_phyaddr[4][3]); in board_eth_init()
767 fm_info_set_phy_address(FM2_DTSEC1, slot_qsgmii_phyaddr[4][0]); in board_eth_init()
768 fm_info_set_phy_address(FM2_DTSEC2, slot_qsgmii_phyaddr[4][1]); in board_eth_init()
769 fm_info_set_phy_address(FM2_DTSEC3, slot_qsgmii_phyaddr[4][2]); in board_eth_init()
770 fm_info_set_phy_address(FM2_DTSEC4, slot_qsgmii_phyaddr[4][3]); in board_eth_init()
778 idx = i - FM2_DTSEC1; in board_eth_init()
785 lane = serdes_get_first_lane(FSL_SRDS_2, in board_eth_init()
788 lane = serdes_get_first_lane(FSL_SRDS_2, in board_eth_init()
790 if (lane < 0) in board_eth_init()
792 slot = lane_to_slot_fsm2[lane]; in board_eth_init()
796 lane = serdes_get_first_lane(FSL_SRDS_2, in board_eth_init()
798 if (lane < 0) in board_eth_init()
800 slot = lane_to_slot_fsm2[lane]; in board_eth_init()
804 if (QIXIS_READ(present2) & (1 << (slot - 1))) in board_eth_init()
812 case 4: in board_eth_init()
822 * the first on-board RGMII port. If DTSEC6 is RGMII, in board_eth_init()
823 * then it's routed via via EC2 to the second on-board in board_eth_init()
838 idx = i - FM2_10GEC1; in board_eth_init()
842 /* A fake PHY address to make U-Boot happy */ in board_eth_init()
845 lane = serdes_get_first_lane(FSL_SRDS_2, in board_eth_init()
847 if (lane < 0) in board_eth_init()
849 slot = lane_to_slot_fsm2[lane]; in board_eth_init()
850 if (QIXIS_READ(present2) & (1 << (slot - 1))) in board_eth_init()