public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC 1/5] CAN interface library
Date: Sun, 1 Nov 2009 10:36:09 -0400	[thread overview]
Message-ID: <200911010936.10570.vapier@gentoo.org> (raw)
In-Reply-To: <1257075217-26623-2-git-send-email-wg@grandegger.com>

On Sunday 01 November 2009 06:33:33 Wolfgang Grandegger wrote:
> --- a/Makefile
> +++ b/Makefile
> @@ -203,6 +203,7 @@ LIBS += net/libnet.a
>  LIBS += disk/libdisk.a
>  LIBS += drivers/bios_emulator/libatibiosemu.a
>  LIBS += drivers/block/libblock.a
> +LIBS += drivers/can/libcan.a

this isnt an issue specific to CAN, but i wonder if we should switch LIBS to 
LIBS-y now that the top level Makefile can rely on autoconf.mk settings after 
the point config.mk is included.  it would save time on pointlessly recursing 
into all the empty dirs and creating empty archives.

> --- /dev/null
> +++ b/drivers/can/Makefile
> @@ -0,0 +1,47 @@
> +include $(TOPDIR)/config.mk
> +
> +LIB 	:= $(obj)libcan.a
> +
> +COBJS-$(CONFIG_CAN)	+= can.o
> +
> +COBJS	:= $(COBJS-y)
> +SRCS 	:= $(COBJS:.o=.c)
> +OBJS 	:= $(addprefix $(obj),$(COBJS))
> +
> +all:	$(LIB)
> +
> +$(LIB):	$(obj).depend $(OBJS)
> +	$(AR) $(ARFLAGS) $@ $(OBJS)
> +
> +
> +#####################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +####################################################

also not specific to CAN, but i think it's time we start creating .mk files 
for subdirs to include

> --- /dev/null
> +++ b/drivers/can/can.c
>
> +static char *baudrates[] = { "125K", "250K", "500K" };

so we're restricting ourselves to these three speeds ?  i have passing 
familiarity with CAN, but i didnt think the protocol was restricted to 
specific speeds.

> +int can_register (struct can_dev* can_dev)

no space before the paren, and the * is cuddled on the wrong side of the 
space.  seems like a lot of this code suffers from these two issues.

> +{
> +	struct can_dev* dev;
> +
> +	can_dev->next = NULL;
> +	if (!can_devs)
> +		can_devs = can_dev;
> +	else {
> +		for (dev = can_devs; dev->next; dev = dev->next)
> +			    ;
> +		dev->next = can_dev;
> +	}

invert the if logic and i think the code would look "nicer" -- use braces on 
the first branch instead of the second.

> +struct can_dev *can_init (int dev_num, int ibaud)
> +{
> +	struct can_dev *dev;
> +	int i;
> +
> +	if (!can_devs) {
> +		puts ("No CAN devices registered\n");
> +		return NULL;
> +	}
> +
> +	/* Advance to selected device */
> +	for (i = 0, dev = can_devs; dev; i++, dev = dev->next) {
> +		if (i == dev_num)
> +			break;
> +	}
> +
> +	if (!dev) {
> +		printf ("CAN device %d does not exist\n", dev_num);
> +		return NULL;
> +	}
> +
> +	printf ("Initializing CAN%d at 0x%08x with baudrate %s\n",
> +		i, dev->base, baudrates[ibaud]);
> +
> +	dev->init (dev, ibaud);
> +
> +	return dev;
> +}

wonder if we should have a generic device list code base since this looks 
similar to a lot of other u-boot device lists ...

> --- /dev/null
> +++ b/include/can.h
> @@ -0,0 +1,70 @@
> +/*
> + * (C) Copyright 2007-2009, Wolfgang Grandegger <wg@denx.de>

have you really been working on this stuff since 2007 ?

> +struct can_dev {
> +	char *name;

const ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20091101/747d1ff9/attachment.pgp 

  parent reply	other threads:[~2009-11-01 14:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-01 11:33 [U-Boot] [RFC 0/5] CAN framework for U-Boot Wolfgang Grandegger
2009-11-01 11:33 ` [U-Boot] [RFC 1/5] CAN interface library Wolfgang Grandegger
2009-11-01 11:33   ` [U-Boot] [RFC 2/5] CAN device test command Wolfgang Grandegger
2009-11-01 11:33     ` [U-Boot] [RFC 3/5] CAN device driver for the SJA1000 Wolfgang Grandegger
2009-11-01 11:33       ` [U-Boot] [RFC 4/5] CAN device driver for the Intel 82527 Wolfgang Grandegger
2009-11-01 11:33         ` [U-Boot] [RFC 5/5] CAN interface support for the TQM855L module Wolfgang Grandegger
2009-11-02 12:02       ` [U-Boot] [RFC 3/5] CAN device driver for the SJA1000 Matthias Fuchs
2009-11-02 12:50         ` Wolfgang Grandegger
2009-11-02 14:22           ` Matthias Fuchs
2009-11-02 20:20             ` Wolfgang Grandegger
2009-11-05 20:28               ` Wolfgang Denk
2009-11-01 14:45     ` [U-Boot] [RFC 2/5] CAN device test command Mike Frysinger
2009-11-01 16:24       ` Wolfgang Grandegger
2009-11-01 18:07         ` Mike Frysinger
2009-11-01 14:36   ` Mike Frysinger [this message]
2009-11-01 16:16     ` [U-Boot] [RFC 1/5] CAN interface library Wolfgang Grandegger
2009-11-01 18:05       ` Mike Frysinger
2009-11-01 22:00         ` Wolfgang Grandegger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200911010936.10570.vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox