Lines Matching +full:num +full:- +full:addresses
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2015-2016 Russell King
14 #include <linux/mdio/mdio-i2c.h>
19 * I2C bus addresses 0x50 and 0x51 are normally an EEPROM, which is
21 * addresses 16 and 17. Disallow access to these "phy" addresses.
36 struct i2c_adapter *i2c = bus->priv; in i2c_mii_read_default_c45()
54 msgs[0].len = p - addr; in i2c_mii_read_default_c45()
71 struct i2c_adapter *i2c = bus->priv; in i2c_mii_write_default_c45()
90 msg.len = p - data; in i2c_mii_write_default_c45()
100 return i2c_mii_read_default_c45(bus, phy_id, -1, reg); in i2c_mii_read_default_c22()
106 return i2c_mii_write_default_c45(bus, phy_id, -1, reg, val); in i2c_mii_write_default_c22()
112 struct i2c_adapter *i2c = bus->priv; in smbus_byte_mii_read_default_c22()
141 struct i2c_adapter *i2c = bus->priv; in smbus_byte_mii_write_default_c22()
170 * ------- ---- -------- -----------
190 int num) in __i2c_transfer_err() argument
194 ret = __i2c_transfer(i2c, msgs, num); in __i2c_transfer_err()
197 else if (ret != num) in __i2c_transfer_err()
198 return -EIO; in __i2c_transfer_err()
249 * unfortunately tests show that this does not work :-( Changed SFP_PAGE does
253 struct i2c_msg *msgs, int num) in i2c_transfer_rollball() argument
261 ret = __i2c_rollball_get_page(i2c, msgs->addr, &saved_page); in i2c_transfer_rollball()
266 ret = __i2c_rollball_set_page(i2c, msgs->addr, SFP_PAGE_ROLLBALL_MDIO); in i2c_transfer_rollball()
271 ret = __i2c_transfer_err(i2c, msgs, num); in i2c_transfer_rollball()
276 ret = __i2c_rollball_set_page(i2c, msgs->addr, saved_page); in i2c_transfer_rollball()
287 struct i2c_adapter *i2c = bus->priv; in i2c_rollball_mii_poll()
320 } while (i-- > 0); in i2c_rollball_mii_poll()
322 dev_dbg(&bus->dev, "poll timed out\n"); in i2c_rollball_mii_poll()
324 return -ETIMEDOUT; in i2c_rollball_mii_poll()
330 struct i2c_adapter *i2c = bus->priv; in i2c_rollball_mii_cmd()
372 if (ret == -ETIMEDOUT) in i2c_mii_read_rollball()
432 return -EIO; in i2c_mii_init_rollball()
457 return ERR_PTR(-EINVAL); in mdio_i2c_alloc()
461 return ERR_PTR(-ENOMEM); in mdio_i2c_alloc()
463 snprintf(mii->id, MII_BUS_ID_SIZE, "i2c:%s", dev_name(parent)); in mdio_i2c_alloc()
464 mii->parent = parent; in mdio_i2c_alloc()
465 mii->priv = i2c; in mdio_i2c_alloc()
470 mii->read = smbus_byte_mii_read_default_c22; in mdio_i2c_alloc()
471 mii->write = smbus_byte_mii_write_default_c22; in mdio_i2c_alloc()
486 mii->read_c45 = i2c_mii_read_rollball; in mdio_i2c_alloc()
487 mii->write_c45 = i2c_mii_write_rollball; in mdio_i2c_alloc()
490 mii->read = i2c_mii_read_default_c22; in mdio_i2c_alloc()
491 mii->write = i2c_mii_write_default_c22; in mdio_i2c_alloc()
492 mii->read_c45 = i2c_mii_read_default_c45; in mdio_i2c_alloc()
493 mii->write_c45 = i2c_mii_write_default_c45; in mdio_i2c_alloc()