mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 05:13:18 +00:00
fsi: Add aliased device numbering
The I2C and SPI subsystems can use an aliased name to number the device. Add similar support to the FSI subsystem for any device type. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20230612195657.245125-3-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
This commit is contained in:
parent
d5d8dfb01e
commit
21930d80ed
@ -934,9 +934,34 @@ static int __fsi_get_new_minor(struct fsi_slave *slave, enum fsi_dev_type type,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *const fsi_dev_type_names[] = {
|
||||
"cfam",
|
||||
"sbefifo",
|
||||
"scom",
|
||||
"occ",
|
||||
};
|
||||
|
||||
int fsi_get_new_minor(struct fsi_device *fdev, enum fsi_dev_type type,
|
||||
dev_t *out_dev, int *out_index)
|
||||
{
|
||||
if (fdev->dev.of_node) {
|
||||
int aid = of_alias_get_id(fdev->dev.of_node, fsi_dev_type_names[type]);
|
||||
|
||||
if (aid >= 0) {
|
||||
int id = (aid << 4) | type;
|
||||
|
||||
id = ida_simple_get(&fsi_minor_ida, id, id + 1, GFP_KERNEL);
|
||||
if (id >= 0) {
|
||||
*out_index = aid;
|
||||
*out_dev = fsi_base_dev + id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (id != -ENOSPC)
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
||||
return __fsi_get_new_minor(fdev->slave, type, out_dev, out_index);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fsi_get_new_minor);
|
||||
|
Loading…
Reference in New Issue
Block a user