Lines Matching refs:dev

94 /* Legacy /dev numbering: 4 devices per chip, 16 chips */
111 * dev: Structure passed to FSI client device drivers on probe().
120 int fsi_device_read(struct fsi_device *dev, uint32_t addr, void *val,
123 if (addr > dev->size || size > dev->size || addr > dev->size - size)
126 return fsi_slave_read(dev->slave, dev->addr + addr, val, size);
130 int fsi_device_write(struct fsi_device *dev, uint32_t addr, const void *val,
133 if (addr > dev->size || size > dev->size || addr > dev->size - size)
136 return fsi_slave_write(dev->slave, dev->addr + addr, val, size);
140 int fsi_device_peek(struct fsi_device *dev, void *val)
142 uint32_t addr = FSI_PEEK_BASE + ((dev->unit - 2) * sizeof(uint32_t));
144 return fsi_slave_read(dev->slave, addr, val, sizeof(uint32_t));
151 of_node_put(device->dev.of_node);
157 struct fsi_device *dev;
159 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
160 if (!dev)
163 dev->dev.parent = &slave->dev;
164 dev->dev.bus = &fsi_bus_type;
165 dev->dev.release = fsi_device_release;
167 return dev;
215 dev_dbg(&slave->dev, "status: 0x%08x, sisc: 0x%08x\n",
285 dev_dbg(&slave->dev, "handling error on %s to 0x%08x[%zd]",
401 static bool fsi_device_node_matches(struct device *dev, struct device_node *np,
413 dev_warn(dev,
425 static struct device_node *fsi_device_find_of_node(struct fsi_device *dev)
429 parent = dev_of_node(&dev->slave->dev);
434 if (fsi_device_node_matches(&dev->dev, np,
435 dev->addr, dev->size))
457 struct fsi_device *dev;
464 dev_warn(&slave->dev,
472 dev_warn(&slave->dev,
492 dev = fsi_create_device(slave);
493 if (!dev)
496 dev->slave = slave;
497 dev->engine_type = type;
498 dev->version = version;
499 dev->unit = i;
500 dev->addr = engine_addr;
501 dev->size = slots * engine_page_size;
503 trace_fsi_dev_init(dev);
505 dev_dbg(&slave->dev,
507 dev->unit, dev->engine_type, version,
508 dev->addr, dev->size);
510 dev_set_name(&dev->dev, "%02x:%02x:%02x:%02x",
513 dev->dev.of_node = fsi_device_find_of_node(dev);
515 rc = device_register(&dev->dev);
517 dev_warn(&slave->dev, "add failed: %d\n", rc);
518 put_device(&dev->dev);
620 static void fsi_slave_release(struct device *dev)
622 struct fsi_slave *slave = to_fsi_slave(dev);
624 fsi_free_minor(slave->dev.devt);
625 of_node_put(dev->of_node);
648 parent = dev_of_node(&master->dev);
765 static ssize_t send_term_store(struct device *dev,
769 struct fsi_slave *slave = to_fsi_slave(dev);
781 static ssize_t slave_send_echo_show(struct device *dev,
785 struct fsi_slave *slave = to_fsi_slave(dev);
790 static ssize_t slave_send_echo_store(struct device *dev,
793 struct fsi_slave *slave = to_fsi_slave(dev);
825 static ssize_t chip_id_show(struct device *dev,
829 struct fsi_slave *slave = to_fsi_slave(dev);
836 static ssize_t cfam_id_show(struct device *dev,
840 struct fsi_slave *slave = to_fsi_slave(dev);
864 static char *cfam_devnode(const struct device *dev, umode_t *mode,
867 const struct fsi_slave *slave = to_fsi_slave(dev);
882 static char *fsi_cdev_devnode(const struct device *dev, umode_t *mode,
886 return kasprintf(GFP_KERNEL, "fsi/%s", dev_name(dev));
888 return kasprintf(GFP_KERNEL, "%s", dev_name(dev));
898 /* Backward compatible /dev/ numbering in "old style" mode */
952 if (fdev->dev.of_node) {
953 int aid = of_alias_get_id(fdev->dev.of_node, fsi_dev_type_names[type]);
975 void fsi_free_minor(dev_t dev)
977 ida_free(&fsi_minor_ida, MINOR(dev));
997 dev_dbg(&master->dev, "can't read slave %02x:%02x %d\n",
1006 dev_warn(&master->dev, "slave %02x:%02x invalid cfam id CRC!\n",
1011 dev_dbg(&master->dev, "fsi: found chip %08x at %02x:%02x:%02x\n",
1023 dev_warn(&master->dev,
1035 dev_set_name(&slave->dev, "slave@%02x:%02x", link, id);
1036 slave->dev.type = &cfam_type;
1037 slave->dev.parent = &master->dev;
1038 slave->dev.of_node = fsi_slave_find_of_node(master, link, id);
1039 slave->dev.release = fsi_slave_release;
1040 device_initialize(&slave->dev);
1051 if (slave->dev.of_node) {
1053 if (!of_property_read_u32(slave->dev.of_node, "chip-id", &prop))
1062 dev_warn(&master->dev,
1068 dev_warn(&master->dev,
1075 rc = __fsi_get_new_minor(slave, fsi_dev_cfam, &slave->dev.devt,
1084 rc = cdev_device_add(&slave->cdev, &slave->dev);
1086 dev_err(&slave->dev, "Error %d creating slave device\n", rc);
1101 rc = device_create_bin_file(&slave->dev, &fsi_slave_raw_attr);
1103 dev_warn(&slave->dev, "failed to create raw attr: %d\n", rc);
1108 dev_dbg(&master->dev, "failed during slave scan with: %d\n",
1114 fsi_free_minor(slave->dev.devt);
1116 of_node_put(slave->dev.of_node);
1211 dev_dbg(&master->dev,
1218 dev_dbg(&master->dev,
1231 static int fsi_slave_remove_device(struct device *dev, void *arg)
1233 device_unregister(dev);
1237 static int fsi_master_remove_slave(struct device *dev, void *arg)
1239 struct fsi_slave *slave = to_fsi_slave(dev);
1241 device_for_each_child(dev, NULL, fsi_slave_remove_device);
1242 cdev_device_del(&slave->cdev, &slave->dev);
1243 put_device(dev);
1250 device_for_each_child(&master->dev, NULL, fsi_master_remove_slave);
1266 static ssize_t master_rescan_store(struct device *dev,
1269 struct fsi_master *master = to_fsi_master(dev);
1281 static ssize_t master_break_store(struct device *dev,
1284 struct fsi_master *master = to_fsi_master(dev);
1324 if (!dev_name(&master->dev))
1325 dev_set_name(&master->dev, "fsi%d", master->idx);
1327 master->dev.class = &fsi_master_class;
1330 rc = device_register(&master->dev);
1336 np = dev_of_node(&master->dev);
1357 device_unregister(&master->dev);
1364 static int fsi_bus_match(struct device *dev, struct device_driver *drv)
1366 struct fsi_device *fsi_dev = to_fsi_dev(dev);
1379 if (of_driver_match_device(dev, drv))