All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabio Estevam <festevam@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] misc: led: Add PCA9551 LED driver
Date: Wed, 11 Mar 2015 11:46:54 -0300	[thread overview]
Message-ID: <CAOMZO5AjOQMueETS2WaAuQt3y6XR9ZeRnsG6jPoegJVZ-8T6Tg@mail.gmail.com> (raw)
In-Reply-To: <1426063900-7267-4-git-send-email-sr@denx.de>

Hi Stefan,

On Wed, Mar 11, 2015 at 5:51 AM, Stefan Roese <sr@denx.de> wrote:

> +
> +config PCA9551_LED
> +       bool "Enable PCA9551 LED driver"
> +       depends on TARGET_TQMA6

Is this 'depends' correct? We should be able to use this driver with
other boards.

> +static int pca9551_led_get_state(int led, int *state)
> +{
> +       unsigned int reg;
> +       u8 shift, buf;
> +
> +       if (led < 0 || led > 7) {
> +               return -1;
> +       } else if (led < 4) {
> +               reg = PCA9551_REG_LS0;
> +               shift = led << 1;
> +       } else {
> +               reg = PCA9551_REG_LS1;
> +               shift = (led - 4) << 1;
> +       }
> +
> +       if (i2c_read(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1))
> +               return -1;

what about:

ret = i2c_read(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1);
if (ret)
    return ret;

> +
> +       *state = (buf >> shift) & 0x03;
> +       return 0;
> +}
> +
> +static int pca9551_led_set_state(int led, int state)
> +{
> +       unsigned int reg;
> +       u8 shift, buf, mask;
> +
> +       if (led < 0 || led > 7) {
> +               return -1;

return -EINVAL;

> +       } else if (led < 4) {
> +               reg = PCA9551_REG_LS0;
> +               shift = led << 1;
> +       } else {
> +               reg = PCA9551_REG_LS1;
> +               shift = (led - 4) << 1;
> +       }
> +       mask = 0x03 << shift;
> +
> +       if (i2c_read(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1))
> +               return -1;

Same here.

> +
> +       buf = (buf & ~mask) | ((state & 0x03) << shift);
> +
> +       if (i2c_write(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1))
> +               return -1;

Same here.

> +
> +       return 0;
> +}
> +
> +static int pca9551_led_set_blink_rate(int idx, struct pca9551_blink_rate rate)
> +{
> +       unsigned int reg;
> +
> +       switch (idx) {
> +       case 0:
> +               reg = PCA9551_REG_PSC0;
> +               break;
> +       case 1:
> +               reg = PCA9551_REG_PSC1;
> +               break;
> +       default:
> +               return -1;

return -EINVAL;

  parent reply	other threads:[~2015-03-11 14:46 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-11  8:51 [U-Boot] [PATCH] autoboot.c: Add feature to stop autobooting via SHA256 encrypted password Stefan Roese
2015-03-11  8:51 ` [U-Boot] [PATCH] bootcount: Add dcache flush to bootcount_store() Stefan Roese
2015-03-11 14:39   ` Tom Rini
2015-03-13 13:48   ` [U-Boot] " Tom Rini
2015-03-13 14:34     ` Tom Rini
2015-03-15 18:30       ` Tom Rini
2015-03-16 15:57         ` York Sun
2015-03-16 17:05           ` Tom Rini
2015-03-16 17:11             ` York Sun
2015-03-16 17:22               ` Tom Rini
2015-03-17  9:00       ` Holger Brunck
2015-03-27 13:18         ` Stefan Roese
2015-03-27 13:42           ` Nitin Garg
2015-03-27 15:07             ` [U-Boot] [RFC] powerpc: add 2 common dcache assembly functions Valentin Longchamp
2015-03-28 18:07               ` Tom Rini
2015-05-05 16:35               ` [U-Boot] [U-Boot, RFC] " York Sun
2015-03-11  8:51 ` [U-Boot] [PATCH] cmd_led: Extend led command to support blinking and more leds Stefan Roese
2015-03-11 14:38   ` Tom Rini
2015-04-23 22:02   ` [U-Boot] " Tom Rini
2015-03-11  8:51 ` [U-Boot] [PATCH] misc: led: Add PCA9551 LED driver Stefan Roese
2015-03-11 14:40   ` Tom Rini
2015-03-11 14:46   ` Fabio Estevam [this message]
2015-03-11 14:36 ` [U-Boot] [PATCH] autoboot.c: Add feature to stop autobooting via SHA256 encrypted password Tom Rini
2015-03-12  8:39   ` Stefan Roese
2015-03-13  2:48   ` Simon Glass
2015-03-13  7:15     ` Stefan Roese
2015-03-23 20:28       ` Simon Glass
2015-05-05 15:06         ` Stefan Roese
2015-05-05 15:12           ` Simon Glass

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=CAOMZO5AjOQMueETS2WaAuQt3y6XR9ZeRnsG6jPoegJVZ-8T6Tg@mail.gmail.com \
    --to=festevam@gmail.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.