Lines Matching defs:master

3  * FSI hub master driver
14 #include "fsi-master.h"
21 * FSI hub master support
23 * A hub master increases the number of potential target devices that the
24 * primary FSI master can access. For each link a primary master supports,
25 * each of those links can in turn be chained to a hub master with multiple
37 struct fsi_master master;
40 /* master address space */
43 #define to_fsi_master_hub(m) container_of(m, struct fsi_master_hub, master)
45 static int hub_master_read(struct fsi_master *master, int link,
48 struct fsi_master_hub *hub = to_fsi_master_hub(master);
57 static int hub_master_write(struct fsi_master *master, int link,
60 struct fsi_master_hub *hub = to_fsi_master_hub(master);
69 static int hub_master_break(struct fsi_master *master, int link)
77 return hub_master_write(master, link, 0, addr, &cmd, sizeof(cmd));
80 static int hub_master_link_enable(struct fsi_master *master, int link,
83 struct fsi_master_hub *hub = to_fsi_master_hub(master);
136 /* Initialize the MFSI (hub master) engine */
165 /* Leave enabled long enough for master logic to set up */
185 /* Reset the master bridge */
228 hub->master.dev.parent = dev;
229 hub->master.dev.release = hub_master_release;
230 hub->master.dev.of_node = of_node_get(dev_of_node(dev));
232 hub->master.n_links = links;
233 hub->master.read = hub_master_read;
234 hub->master.write = hub_master_write;
235 hub->master.send_break = hub_master_break;
236 hub->master.link_enable = hub_master_link_enable;
242 rc = fsi_master_register(&hub->master);
247 * and holds the sole reference on master.dev. This means the device
253 get_device(&hub->master.dev);
266 fsi_master_unregister(&hub->master);
268 of_node_put(hub->master.dev.of_node);
271 * master.dev will likely be ->release()ed after this, which free()s
274 put_device(&hub->master.dev);
290 .name = "fsi-master-hub",