Lines Matching refs:dev

57 static void dump_regs(struct eth_device *dev)  in dump_regs()  argument
62 smc911x_reg_read(dev, i), in dump_regs()
69 static int do_eeprom_cmd(struct eth_device *dev, int cmd, u8 reg) in do_eeprom_cmd() argument
71 if (smc911x_reg_read(dev, E2P_CMD) & E2P_CMD_EPC_BUSY) { in do_eeprom_cmd()
73 smc911x_reg_read(dev, E2P_CMD)); in do_eeprom_cmd()
77 smc911x_reg_write(dev, E2P_CMD, E2P_CMD_EPC_BUSY | cmd | reg); in do_eeprom_cmd()
79 while (smc911x_reg_read(dev, E2P_CMD) & E2P_CMD_EPC_BUSY) in do_eeprom_cmd()
82 smc911x_reg_read(dev, E2P_CMD)); in do_eeprom_cmd()
92 static u8 read_eeprom_reg(struct eth_device *dev, u8 reg) in read_eeprom_reg() argument
94 int ret = do_eeprom_cmd(dev, E2P_CMD_EPC_CMD_READ, reg); in read_eeprom_reg()
95 return (ret ? : smc911x_reg_read(dev, E2P_DATA)); in read_eeprom_reg()
101 static int write_eeprom_reg(struct eth_device *dev, u8 value, u8 reg) in write_eeprom_reg() argument
106 ret = do_eeprom_cmd(dev, E2P_CMD_EPC_CMD_EWEN, reg); in write_eeprom_reg()
111 ret = do_eeprom_cmd(dev, E2P_CMD_EPC_CMD_ERASE, reg); in write_eeprom_reg()
116 smc911x_reg_write(dev, E2P_DATA, value); in write_eeprom_reg()
117 ret = do_eeprom_cmd(dev, E2P_CMD_EPC_CMD_WRITE, reg); in write_eeprom_reg()
122 ret = do_eeprom_cmd(dev, E2P_CMD_EPC_CMD_EWDS, reg); in write_eeprom_reg()
141 static void write_stuff(struct eth_device *dev, char *line) in write_stuff() argument
184 write_eeprom_reg(dev, value, reg); in write_stuff()
187 smc911x_reg_write(dev, reg, value); in write_stuff()
194 static void copy_from_eeprom(struct eth_device *dev) in copy_from_eeprom() argument
197 read_eeprom_reg(dev, 0x01) | in copy_from_eeprom()
198 read_eeprom_reg(dev, 0x02) << 8 | in copy_from_eeprom()
199 read_eeprom_reg(dev, 0x03) << 16 | in copy_from_eeprom()
200 read_eeprom_reg(dev, 0x04) << 24; in copy_from_eeprom()
202 read_eeprom_reg(dev, 0x05) | in copy_from_eeprom()
203 read_eeprom_reg(dev, 0x06) << 8; in copy_from_eeprom()
204 smc911x_set_mac_csr(dev, ADDRL, addrl); in copy_from_eeprom()
205 smc911x_set_mac_csr(dev, ADDRH, addrh); in copy_from_eeprom()
212 static void print_macaddr(struct eth_device *dev) in print_macaddr() argument
215 ulong addrl = smc911x_get_mac_csr(dev, ADDRL); in print_macaddr()
216 ulong addrh = smc911x_get_mac_csr(dev, ADDRH); in print_macaddr()
224 printf("%02x:", read_eeprom_reg(dev, i)); in print_macaddr()
225 printf("%02x\n", read_eeprom_reg(dev, i)); in print_macaddr()
231 static void dump_eeprom(struct eth_device *dev) in dump_eeprom() argument
236 printf("%02x: 0x%02x\n", i, read_eeprom_reg(dev, i)); in dump_eeprom()
242 static int smc911x_init(struct eth_device *dev) in smc911x_init() argument
245 if (smc911x_detect_chip(dev)) in smc911x_init()
248 smc911x_reset(dev); in smc911x_init()
251 if (smc911x_reg_read(dev, GPIO_CFG) & GPIO_CFG_EEPR_EN) { in smc911x_init()
252 while (smc911x_reg_read(dev, E2P_CMD) & E2P_CMD_EPC_BUSY) in smc911x_init()
255 smc911x_reg_read(dev, E2P_CMD)); in smc911x_init()
258 smc911x_reg_write(dev, GPIO_CFG, in smc911x_init()
259 smc911x_reg_read(dev, GPIO_CFG) & ~GPIO_CFG_EEPR_EN); in smc911x_init()
321 struct eth_device dev; in smc911x_eeprom() local
322 dev.iobase = CONFIG_SMC911X_BASE; in smc911x_eeprom()
335 if (smc911x_init(&dev)) in smc911x_eeprom()
367 case 'W': write_stuff(&dev, line); break; in smc911x_eeprom()
368 case 'D': dump_eeprom(&dev); break; in smc911x_eeprom()
369 case 'M': dump_regs(&dev); break; in smc911x_eeprom()
370 case 'C': copy_from_eeprom(&dev); break; in smc911x_eeprom()
371 case 'P': print_macaddr(&dev); break; in smc911x_eeprom()