Lines Matching refs:val
224 int val; in mv88e61xx_smi_wait() local
228 val = bus->read(bus, smi_addr, MDIO_DEVAD_NONE, SMI_CMD_REG); in mv88e61xx_smi_wait()
229 if (val >= 0 && (val & SMI_BUSY) == 0) in mv88e61xx_smi_wait()
292 u16 val) in mv88e61xx_reg_write() argument
302 val); in mv88e61xx_reg_write()
312 SMI_DATA_REG, val); in mv88e61xx_reg_write()
332 int val; in mv88e61xx_phy_wait() local
336 val = mv88e61xx_reg_read(phydev, DEVADDR_GLOBAL_2, in mv88e61xx_phy_wait()
338 if (val >= 0 && (val & SMI_BUSY) == 0) in mv88e61xx_phy_wait()
403 int reg, u16 val) in mv88e61xx_phy_write() argument
406 MDIO_DEVAD_NONE, reg, val); in mv88e61xx_phy_write()
415 u16 val) in mv88e61xx_port_write() argument
417 return mv88e61xx_reg_write(phydev, DEVADDR_PORT(port), reg, val); in mv88e61xx_port_write()
519 int val; in mv88e61xx_switch_reset() local
524 val = mv88e61xx_port_read(phydev, port, PORT_REG_CTRL); in mv88e61xx_switch_reset()
525 if (val < 0) in mv88e61xx_switch_reset()
526 return val; in mv88e61xx_switch_reset()
527 val = bitfield_replace(val, PORT_REG_CTRL_PSTATE_SHIFT, in mv88e61xx_switch_reset()
530 val = mv88e61xx_port_write(phydev, port, PORT_REG_CTRL, val); in mv88e61xx_switch_reset()
531 if (val < 0) in mv88e61xx_switch_reset()
532 return val; in mv88e61xx_switch_reset()
539 val = mv88e61xx_reg_read(phydev, DEVADDR_GLOBAL_1, GLOBAL1_CTRL); in mv88e61xx_switch_reset()
540 if (val < 0) in mv88e61xx_switch_reset()
541 return val; in mv88e61xx_switch_reset()
542 val |= GLOBAL1_CTRL_SWRESET; in mv88e61xx_switch_reset()
543 val = mv88e61xx_reg_write(phydev, DEVADDR_GLOBAL_1, in mv88e61xx_switch_reset()
544 GLOBAL1_CTRL, val); in mv88e61xx_switch_reset()
545 if (val < 0) in mv88e61xx_switch_reset()
546 return val; in mv88e61xx_switch_reset()
550 val = mv88e61xx_reg_read(phydev, DEVADDR_GLOBAL_1, in mv88e61xx_switch_reset()
552 if (val >= 0 && ((val & GLOBAL1_CTRL_SWRESET) == 0)) in mv88e61xx_switch_reset()
564 int val; in mv88e61xx_serdes_init() local
566 val = mv88e61xx_set_page(phydev, DEVADDR_SERDES, PHY_PAGE_SERDES); in mv88e61xx_serdes_init()
567 if (val < 0) in mv88e61xx_serdes_init()
568 return val; in mv88e61xx_serdes_init()
571 val = mv88e61xx_phy_read(phydev, DEVADDR_SERDES, MII_BMCR); in mv88e61xx_serdes_init()
572 if (val < 0) in mv88e61xx_serdes_init()
573 return val; in mv88e61xx_serdes_init()
574 val &= ~(BMCR_PDOWN); in mv88e61xx_serdes_init()
575 val = mv88e61xx_phy_write(phydev, DEVADDR_SERDES, MII_BMCR, val); in mv88e61xx_serdes_init()
576 if (val < 0) in mv88e61xx_serdes_init()
577 return val; in mv88e61xx_serdes_init()
584 int val; in mv88e61xx_port_enable() local
586 val = mv88e61xx_port_read(phydev, port, PORT_REG_CTRL); in mv88e61xx_port_enable()
587 if (val < 0) in mv88e61xx_port_enable()
588 return val; in mv88e61xx_port_enable()
589 val = bitfield_replace(val, PORT_REG_CTRL_PSTATE_SHIFT, in mv88e61xx_port_enable()
592 val = mv88e61xx_port_write(phydev, port, PORT_REG_CTRL, val); in mv88e61xx_port_enable()
593 if (val < 0) in mv88e61xx_port_enable()
594 return val; in mv88e61xx_port_enable()
602 int val; in mv88e61xx_port_set_vlan() local
605 val = mv88e61xx_port_read(phydev, port, PORT_REG_VLAN_ID); in mv88e61xx_port_set_vlan()
606 if (val < 0) in mv88e61xx_port_set_vlan()
607 return val; in mv88e61xx_port_set_vlan()
608 val = bitfield_replace(val, PORT_REG_VLAN_ID_DEF_VID_SHIFT, in mv88e61xx_port_set_vlan()
611 val = mv88e61xx_port_write(phydev, port, PORT_REG_VLAN_ID, val); in mv88e61xx_port_set_vlan()
612 if (val < 0) in mv88e61xx_port_set_vlan()
613 return val; in mv88e61xx_port_set_vlan()
616 val = mv88e61xx_port_read(phydev, port, PORT_REG_VLAN_MAP); in mv88e61xx_port_set_vlan()
617 if (val < 0) in mv88e61xx_port_set_vlan()
618 return val; in mv88e61xx_port_set_vlan()
619 val = bitfield_replace(val, PORT_REG_VLAN_MAP_TABLE_SHIFT, in mv88e61xx_port_set_vlan()
622 val = mv88e61xx_port_write(phydev, port, PORT_REG_VLAN_MAP, val); in mv88e61xx_port_set_vlan()
623 if (val < 0) in mv88e61xx_port_set_vlan()
624 return val; in mv88e61xx_port_set_vlan()
632 int val; in mv88e61xx_read_port_config() local
635 val = mv88e61xx_port_read(phydev, port, PORT_REG_STATUS); in mv88e61xx_read_port_config()
636 if (val < 0) in mv88e61xx_read_port_config()
637 return val; in mv88e61xx_read_port_config()
638 if (!(val & PORT_REG_STATUS_LINK)) { in mv88e61xx_read_port_config()
643 val = mv88e61xx_port_read(phydev, port, PORT_REG_PHYS_CTRL); in mv88e61xx_read_port_config()
644 if (val < 0) in mv88e61xx_read_port_config()
645 return val; in mv88e61xx_read_port_config()
646 val |= (PORT_REG_PHYS_CTRL_LINK_FORCE | in mv88e61xx_read_port_config()
648 val = mv88e61xx_port_write(phydev, port, PORT_REG_PHYS_CTRL, in mv88e61xx_read_port_config()
649 val); in mv88e61xx_read_port_config()
650 if (val < 0) in mv88e61xx_read_port_config()
651 return val; in mv88e61xx_read_port_config()
655 val = mv88e61xx_port_read(phydev, port, in mv88e61xx_read_port_config()
657 if (val < 0) { in mv88e61xx_read_port_config()
661 if (val & PORT_REG_STATUS_LINK) in mv88e61xx_read_port_config()
671 if (val & PORT_REG_STATUS_DUPLEX) in mv88e61xx_read_port_config()
676 val = bitfield_extract(val, PORT_REG_STATUS_SPEED_SHIFT, in mv88e61xx_read_port_config()
678 switch (val) { in mv88e61xx_read_port_config()
694 val = mv88e61xx_port_read(phydev, port, PORT_REG_PHYS_CTRL); in mv88e61xx_read_port_config()
695 if (val < 0) in mv88e61xx_read_port_config()
696 return val; in mv88e61xx_read_port_config()
697 val &= ~(PORT_REG_PHYS_CTRL_LINK_FORCE | in mv88e61xx_read_port_config()
699 val = mv88e61xx_port_write(phydev, port, PORT_REG_PHYS_CTRL, in mv88e61xx_read_port_config()
700 val); in mv88e61xx_read_port_config()
701 if (val < 0) in mv88e61xx_read_port_config()
702 return val; in mv88e61xx_read_port_config()
710 int val; in mv88e61xx_fixed_port_setup() local
712 val = mv88e61xx_port_read(phydev, port, PORT_REG_PHYS_CTRL); in mv88e61xx_fixed_port_setup()
713 if (val < 0) in mv88e61xx_fixed_port_setup()
714 return val; in mv88e61xx_fixed_port_setup()
716 val &= ~(PORT_REG_PHYS_CTRL_SPD_MASK | in mv88e61xx_fixed_port_setup()
718 val |= PORT_REG_PHYS_CTRL_PCS_AN_EN | in mv88e61xx_fixed_port_setup()
726 val |= PORT_REG_PHYS_CTRL_LINK_VALUE | in mv88e61xx_fixed_port_setup()
730 val); in mv88e61xx_fixed_port_setup()
735 int val; in mv88e61xx_set_cpu_port() local
738 val = mv88e61xx_reg_read(phydev, DEVADDR_GLOBAL_1, GLOBAL1_MON_CTRL); in mv88e61xx_set_cpu_port()
739 if (val < 0) in mv88e61xx_set_cpu_port()
740 return val; in mv88e61xx_set_cpu_port()
741 val = bitfield_replace(val, GLOBAL1_MON_CTRL_CPUDEST_SHIFT, in mv88e61xx_set_cpu_port()
744 val = mv88e61xx_reg_write(phydev, DEVADDR_GLOBAL_1, in mv88e61xx_set_cpu_port()
745 GLOBAL1_MON_CTRL, val); in mv88e61xx_set_cpu_port()
746 if (val < 0) in mv88e61xx_set_cpu_port()
747 return val; in mv88e61xx_set_cpu_port()
750 val = PORT_MASK & ~(1 << CONFIG_MV88E61XX_CPU_PORT); in mv88e61xx_set_cpu_port()
751 val = mv88e61xx_port_set_vlan(phydev, CONFIG_MV88E61XX_CPU_PORT, val); in mv88e61xx_set_cpu_port()
752 if (val < 0) in mv88e61xx_set_cpu_port()
753 return val; in mv88e61xx_set_cpu_port()
756 val = mv88e61xx_port_enable(phydev, CONFIG_MV88E61XX_CPU_PORT); in mv88e61xx_set_cpu_port()
757 if (val < 0) in mv88e61xx_set_cpu_port()
758 return val; in mv88e61xx_set_cpu_port()
760 val = mv88e61xx_read_port_config(phydev, CONFIG_MV88E61XX_CPU_PORT); in mv88e61xx_set_cpu_port()
761 if (val < 0) in mv88e61xx_set_cpu_port()
762 return val; in mv88e61xx_set_cpu_port()
766 val = mv88e61xx_get_cmode(phydev, CONFIG_MV88E61XX_CPU_PORT); in mv88e61xx_set_cpu_port()
767 if (val < 0) in mv88e61xx_set_cpu_port()
768 return val; in mv88e61xx_set_cpu_port()
769 if (val == PORT_REG_STATUS_CMODE_100BASE_X || in mv88e61xx_set_cpu_port()
770 val == PORT_REG_STATUS_CMODE_1000BASE_X || in mv88e61xx_set_cpu_port()
771 val == PORT_REG_STATUS_CMODE_SGMII) { in mv88e61xx_set_cpu_port()
772 val = mv88e61xx_serdes_init(phydev); in mv88e61xx_set_cpu_port()
773 if (val < 0) in mv88e61xx_set_cpu_port()
774 return val; in mv88e61xx_set_cpu_port()
777 val = mv88e61xx_fixed_port_setup(phydev, in mv88e61xx_set_cpu_port()
779 if (val < 0) in mv88e61xx_set_cpu_port()
780 return val; in mv88e61xx_set_cpu_port()
809 int val; in mv88e61xx_phy_enable() local
811 val = mv88e61xx_phy_read(phydev, phy, MII_BMCR); in mv88e61xx_phy_enable()
812 if (val < 0) in mv88e61xx_phy_enable()
813 return val; in mv88e61xx_phy_enable()
814 val &= ~(BMCR_PDOWN); in mv88e61xx_phy_enable()
815 val = mv88e61xx_phy_write(phydev, phy, MII_BMCR, val); in mv88e61xx_phy_enable()
816 if (val < 0) in mv88e61xx_phy_enable()
817 return val; in mv88e61xx_phy_enable()
824 int val; in mv88e61xx_phy_setup() local
830 val = mv88e61xx_phy_read(phydev, phy, PHY_REG_CTRL1); in mv88e61xx_phy_setup()
831 if (val < 0) in mv88e61xx_phy_setup()
832 return val; in mv88e61xx_phy_setup()
833 val = bitfield_replace(val, PHY_REG_CTRL1_ENERGY_DET_SHIFT, in mv88e61xx_phy_setup()
836 val = mv88e61xx_phy_write(phydev, phy, PHY_REG_CTRL1, val); in mv88e61xx_phy_setup()
837 if (val < 0) in mv88e61xx_phy_setup()
838 return val; in mv88e61xx_phy_setup()
845 int val; in mv88e61xx_phy_config_port() local
847 val = mv88e61xx_port_enable(phydev, phy); in mv88e61xx_phy_config_port()
848 if (val < 0) in mv88e61xx_phy_config_port()
849 return val; in mv88e61xx_phy_config_port()
851 val = mv88e61xx_port_set_vlan(phydev, phy, in mv88e61xx_phy_config_port()
853 if (val < 0) in mv88e61xx_phy_config_port()
854 return val; in mv88e61xx_phy_config_port()
975 int val; in mv88e61xx_phy_is_connected() local
977 val = mv88e61xx_phy_read(phydev, phydev->addr, PHY_REG_STATUS1); in mv88e61xx_phy_is_connected()
978 if (val < 0) in mv88e61xx_phy_is_connected()
986 return (val & PHY_REG_STATUS1_ENERGY) == 0; in mv88e61xx_phy_is_connected()
1060 int val; in get_phy_id() local
1071 val = mv88e61xx_phy_read_indirect(&temp_mii, 0, devad, MII_PHYSID1); in get_phy_id()
1072 if (val < 0) in get_phy_id()
1075 *phy_id = val << 16; in get_phy_id()
1077 val = mv88e61xx_phy_read_indirect(&temp_mii, 0, devad, MII_PHYSID2); in get_phy_id()
1078 if (val < 0) in get_phy_id()
1081 *phy_id |= (val & 0xffff); in get_phy_id()