Lines Matching +full:board +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0
2 /* Code to support devices on the DIO and DIO-II bus
9 * of the next unconfigured device found that matches the given device ID.
10 * Note that the deviceid parameter should be the encoded ID.
20 * Return a character string describing this board [might be "" if
22 * void dio_config_board(int scode) mark board as configured in the list
23 * void dio_unconfig_board(int scode) mark board as no longer configured
42 /* DIO-II range */
43 { .name = "DIO-II mem", .start = 0x01000000, .end = 0x1fffffff }
52 /* We associate each numeric ID with an appropriate descriptive string
61 int id; member
91 = "unknown DIO board, please email linux-m68k@lists.linux-m68k.org";
93 static const char *dio_getname(int id) in dio_getname() argument
95 /* return pointer to a constant string describing the board with given ID */ in dio_getname()
99 if (names[i].id == id) in dio_getname()
123 int scode, id; in dio_find() local
147 continue; /* no board present at that select code */ in dio_find()
154 id = DIO_ENCODE_ID(prid, secid); in dio_find()
156 id = prid; in dio_find()
158 if (id == deviceid) { in dio_find()
165 return -1; in dio_find()
199 u_char prid, secid = 0; /* primary, secondary ID bytes */ in dio_init()
220 continue; /* no board present at that select code */ in dio_init()
223 /* Found a board, allocate it an entry in the list */ in dio_init()
228 return -ENOMEM; in dio_init()
231 dev->bus = &dio_bus; in dio_init()
232 dev->dev.parent = &dio_bus.dev; in dio_init()
233 dev->dev.bus = &dio_bus_type; in dio_init()
234 dev->dev.release = dio_dev_release; in dio_init()
235 dev->scode = scode; in dio_init()
236 dev->resource.start = pa; in dio_init()
237 dev->resource.end = pa + DIO_SIZE(scode, va); in dio_init()
238 dev_set_name(&dev->dev, "%02x", scode); in dio_init()
240 /* read the ID byte(s) and encode if necessary. */ in dio_init()
245 dev->id = DIO_ENCODE_ID(prid, secid); in dio_init()
247 dev->id = prid; in dio_init()
249 dev->ipl = DIO_IPL(va); in dio_init()
250 strcpy(dev->name, dio_getname(dev->id)); in dio_init()
251 printk(KERN_INFO "select code %3d: ipl %d: ID %02X", dev->scode, dev->ipl, prid); in dio_init()
254 printk(": %s\n", dev->name); in dio_init()
258 error = device_register(&dev->dev); in dio_init()
261 dev->name); in dio_init()
262 put_device(&dev->dev); in dio_init()
267 dev_err(&dev->dev, "Error creating sysfs files\n"); in dio_init()
280 return (DIOII_BASE + (scode - 132) * DIOII_DEVSIZE); in dio_scodetophysaddr()