Lines Matching +full:coexist +full:- +full:support

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Marvell 88E6xxx System Management Interface (SMI) support
16 * When ADDR is all zero, the chip uses Single-chip Addressing Mode, assuming it
20 * When ADDR is non-zero, the chip uses Multi-chip Addressing Mode, allowing
26 * addresses, allowing two to coexist on the same SMI interface.
34 ret = mdiobus_read_nested(chip->bus, dev, reg); in mv88e6xxx_smi_direct_read()
48 ret = mdiobus_write_nested(chip->bus, dev, reg, data); in mv88e6xxx_smi_direct_write()
80 return -ETIMEDOUT; in mv88e6xxx_smi_direct_wait()
91 return mv88e6xxx_smi_direct_read(chip, chip->sw_addr + dev, reg, data); in mv88e6xxx_smi_dual_direct_read()
97 return mv88e6xxx_smi_direct_write(chip, chip->sw_addr + dev, reg, data); in mv88e6xxx_smi_dual_direct_write()
114 err = mv88e6xxx_smi_direct_write(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_read()
123 err = mv88e6xxx_smi_direct_wait(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_read()
128 return mv88e6xxx_smi_direct_read(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_read()
137 err = mv88e6xxx_smi_direct_write(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_write()
142 err = mv88e6xxx_smi_direct_write(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_write()
151 return mv88e6xxx_smi_direct_wait(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_write()
161 return mv88e6xxx_smi_direct_wait(chip, chip->sw_addr, in mv88e6xxx_smi_indirect_init()
174 if (chip->info->dual_chip) in mv88e6xxx_smi_init()
175 chip->smi_ops = &mv88e6xxx_smi_dual_direct_ops; in mv88e6xxx_smi_init()
177 chip->smi_ops = &mv88e6xxx_smi_direct_ops; in mv88e6xxx_smi_init()
178 else if (chip->info->multi_chip) in mv88e6xxx_smi_init()
179 chip->smi_ops = &mv88e6xxx_smi_indirect_ops; in mv88e6xxx_smi_init()
181 return -EINVAL; in mv88e6xxx_smi_init()
183 chip->bus = bus; in mv88e6xxx_smi_init()
184 chip->sw_addr = sw_addr; in mv88e6xxx_smi_init()
186 if (chip->smi_ops->init) in mv88e6xxx_smi_init()
187 return chip->smi_ops->init(chip); in mv88e6xxx_smi_init()