[PATCH 00/12] add bus device

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon Oct 15 06:23:07 EDT 2012


On 09:10 Mon 15 Oct     , Sascha Hauer wrote:
> On Sun, Oct 14, 2012 at 10:59:29PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > Hi,
> > 
> > we have now a nice output per bus
> > 
> > barebox at ST SPEARr1340 EVB:/
> > # devinfo 
> > devices:
> > `---- platfrom
> >      `---- mem0
> >           `---- 0x00000000-0x3fffffff: /dev/ram0
> >      `---- smp_twd
> >      `---- mem1
> >           `---- 0x00000000-0x0000251f: /dev/defaultenv
> >      `---- mem2
> >           `---- 0x00000000-0xfffffffe: /dev/mem
> >      `---- designware_eth0
> >           `---- miibus0
> >           `---- eth0
> >      `---- fsmc-nand
> >           `---- nand0
> >                `---- 0x00000000-0x7fffffff: /dev/nand0
> >                `---- 0x00000000-0x0000ffff: /dev/xloader
> >                `---- 0x00010000-0x0004ffff: /dev/self_raw
> >                `---- 0x00050000-0x0006ffff: /dev/env_raw
> >                `---- 0x00000000-0x0003ffff: /dev/nand0.xloader
> >                `---- 0x00040000-0x0007ffff: /dev/nand0.meminit
> >                `---- 0x00080000-0x0027ffff: /dev/nand0.barebox
> >                `---- 0x00280000-0x0057ffff: /dev/nand0.kernel
> >                `---- 0x00580000-0x01b7ffff: /dev/nand0.rootfs
> >                `---- 0x01b80000-0x07f7ffff: /dev/nand0.userfs
> >                `---- 0x07f80000-0x07fdffff: /dev/nand0.free
> >                `---- 0x07fe0000-0x07ffffff: /dev/nand0.bareboxenv
> >      `---- smi
> >           `---- smi0
> >                `---- 0x00000000-0x007fffff: /dev/smi0
> >      `---- sdhci-spear
> >           `---- mci0
> >                `---- 0x00000000-0x1e3dffff: /dev/disk0
> >                `---- 0x0001da00-0x1e3d1fff: /dev/disk0.0
> > `---- amba
> >      `---- uart-pl0110
> >           `---- cs0
> >      `---- pl061_gpio0
> >      `---- pl061_gpio1
> >      `---- ssp-pl0220
> >           `---- m25p0
> >                `---- 0x00000000-0x0000ffff: /dev/m25p0
> > `---- mdio_bus
> > `---- usb
> > `---- spi
> > `---- i2c
> > `---- fb
> > `---- fs
> >      `---- ramfs0
> >      `---- devfs0
> > `---- net
> > `---- global
> 
> Look nice indeed. Why not do it simpler?
> 
> 
> From f8e90176da267275fa25feca2b880cdf4d9f5daf Mon Sep 17 00:00:00 2001
> From: Sascha Hauer <s.hauer at pengutronix.de>
> Date: Mon, 15 Oct 2012 08:53:29 +0200
> Subject: [PATCH] add bus devices
> 
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  drivers/base/bus.c    |    9 +++++++++
>  drivers/base/driver.c |    5 +++++
>  include/driver.h      |    2 ++
>  3 files changed, 16 insertions(+)
> 
> diff --git a/drivers/base/bus.c b/drivers/base/bus.c
> index 69782d2..caff0af 100644
> --- a/drivers/base/bus.c
> +++ b/drivers/base/bus.c
> @@ -25,12 +25,21 @@ 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;
>  
>  	INIT_LIST_HEAD(&bus->device_list);
>  	INIT_LIST_HEAD(&bus->driver_list);
>  
> +	safe_strncpy(bus->bus_dev.name, bus->name, MAX_DRIVER_NAME);
> +	bus->bus_dev.id = DEVICE_ID_SINGLE;
> +
> +	ret = register_device(&bus->bus_dev);
> +	if (ret)
> +		return ret;
> +
>  	list_add_tail(&bus->list, &bus_list);
>  
>  	return 0;
> diff --git a/drivers/base/driver.c b/drivers/base/driver.c
> index 5b7286a..395546b 100644
> --- a/drivers/base/driver.c
> +++ b/drivers/base/driver.c
> @@ -127,6 +127,11 @@ int register_device(struct device_d *new_device)
>  
>  	list_add_tail(&new_device->bus_list, &new_device->bus->device_list);
>  
> +	if (!new_device->parent) {
> +		new_device->parent = &new_device->bus->dev;
> +		dev_add_child(new_device->parent, new_device);
and I was wanting to add global name "barebox" and add everyone under to it

I choose to do let the bus manage the child
and to create a device or not

as done in linux

Best Regards,
J.



More information about the barebox mailing list