bus: add bus device
automatically add it as parent of any bus device if none already specified we have now a nice output per bus barebox@Atmel at91sam9x5-ek:/ devices: `---- platform `---- atmel_usart0 `---- cs0 `---- atmel_usart1 `---- cs1 `---- mem0 `---- 0x00000000-0x07ffffff: /dev/ram0 `---- mem1 `---- 0x00000000-0x00007fff: /dev/sram0 `---- mem2 `---- 0x00000000-0x000037bf: /dev/defaultenv `---- mem3 `---- 0x00000000-0xfffffffe: /dev/mem `---- cs2 `---- w1-gpio `---- w1_bus0 `---- w1-2d-0 `---- 0x00000000-0x0000007f: /dev/ds24310 `---- w1-2d-1 `---- 0x00000000-0x0000007f: /dev/ds24311 `---- w1-23-0 `---- 0x00000000-0x000001ff: /dev/ds24330 `---- at91sam9x5cm `---- at91sam9x5ek `---- at91sam9x5dm `---- atmel_nand0 `---- nand0 `---- 0x00000000-0x1fffffff: /dev/nand0 `---- 0x00000000-0x0003ffff: /dev/at91bootstrap_raw `---- 0x00040000-0x0009ffff: /dev/self_raw `---- 0x000a0000-0x000bffff: /dev/env_raw `---- 0x000c0000-0x000dffff: /dev/env_raw1 `---- 0x00000000-0x0003ffff: /dev/nand0.at91bootstrap `---- 0x00040000-0x0009ffff: /dev/nand0.barebox `---- 0x000a0000-0x000bffff: /dev/nand0.bareboxenv `---- 0x000c0000-0x000dffff: /dev/nand0.bareboxenv2 `---- 0x000e0000-0x000fffff: /dev/nand0.oftree `---- 0x00100000-0x001fffff: /dev/nand0.free `---- 0x00200000-0x007fffff: /dev/nand0.kernel `---- 0x00800000-0x07ffffff: /dev/nand0.rootfs `---- 0x08000000-0x1fffffff: /dev/nand0.data `---- macb0 `---- miibus0 `---- eth0 `---- atmel_spi0 `---- mtd_dataflash0 `---- dataflash0 `---- 0x00000000-0x0041ffff: /dev/dataflash0 `---- atmel_mci0 `---- mci0 `---- 0x00000000-0x1d9bfffff: /dev/disk0 `---- 0x00100000-0x064fffff: /dev/disk0.0 `---- 0x06500000-0x1d9bfffff: /dev/disk0.1 `---- i2c-gpio0 `---- i2c0 `---- qt10700 `---- cs3 `---- mdio_bus `---- spi `---- i2c `---- w1_bus `---- fs `---- ramfs0 `---- devfs0 `---- net `---- global drivers: atmel_usart ramfs devfs fat macb Generic PHY atmel_nand mtd_dataflash m25p80 atmel_spi i2c-gpio mci atmel_mci qt1070 w1-gpio ds2431 ds2433 mem Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
543cf11ad4
commit
c2e568d19c
|
@ -25,9 +25,19 @@ static struct bus_type *get_bus_by_name(const char *name)
|
|||
|
||||
int bus_register(struct bus_type *bus)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (get_bus_by_name(bus->name))
|
||||
return -EEXIST;
|
||||
|
||||
strcpy(bus->dev.name, bus->name);
|
||||
bus->dev.id = DEVICE_ID_SINGLE;
|
||||
|
||||
ret = register_device(&bus->dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
INIT_LIST_HEAD(&bus->device_list);
|
||||
INIT_LIST_HEAD(&bus->driver_list);
|
||||
|
||||
|
|
|
@ -125,6 +125,11 @@ int register_device(struct device_d *new_device)
|
|||
if (!new_device->bus)
|
||||
return 0;
|
||||
|
||||
if (!new_device->parent) {
|
||||
new_device->parent = &new_device->bus->dev;
|
||||
dev_add_child(new_device->parent, new_device);
|
||||
}
|
||||
|
||||
list_add_tail(&new_device->bus_list, &new_device->bus->device_list);
|
||||
|
||||
bus_for_each_driver(new_device->bus, drv) {
|
||||
|
|
|
@ -393,6 +393,8 @@ struct bus_type {
|
|||
int (*probe)(struct device_d *dev);
|
||||
void (*remove)(struct device_d *dev);
|
||||
|
||||
struct device_d dev;
|
||||
|
||||
struct list_head list;
|
||||
struct list_head device_list;
|
||||
struct list_head driver_list;
|
||||
|
|
Loading…
Reference in New Issue