From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 08/17] eeprom: Pull out address computation
Date: Mon, 16 Nov 2015 12:28:02 +0100 [thread overview]
Message-ID: <5649BDC2.3010201@denx.de> (raw)
In-Reply-To: <1447185213-5799-8-git-send-email-marex@denx.de>
Hello Marek,
Am 10.11.2015 um 20:53 schrieb Marek Vasut:
> Pull out the code computing the EEPROM address into separate function
> so that it's not duplicated.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Heiko Schocher <hs@denx.de>
> ---
> common/cmd_eeprom.c | 64 ++++++++++++++++++++++-------------------------------
> 1 file changed, 26 insertions(+), 38 deletions(-)
Reviewed-by: Heiko Schocher <hs@denx.de>
bye,
Heiko
>
> diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c
> index 7797d0e..5979993 100644
> --- a/common/cmd_eeprom.c
> +++ b/common/cmd_eeprom.c
> @@ -61,6 +61,28 @@ void eeprom_init(void)
> #endif
> }
>
> +static int eeprom_addr(unsigned dev_addr, unsigned offset, uchar *addr)
> +{
> + unsigned blk_off;
> + int alen;
> +
> + blk_off = offset & 0xff; /* block offset */
> +#if CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 1
> + addr[0] = offset >> 8; /* block number */
> + addr[1] = blk_off; /* block offset */
> + alen = 2;
> +#else
> + addr[0] = offset >> 16; /* block number */
> + addr[1] = offset >> 8; /* upper address octet */
> + addr[2] = blk_off; /* lower address octet */
> + alen = 3;
> +#endif /* CONFIG_SYS_I2C_EEPROM_ADDR_LEN */
> +
> + addr[0] |= dev_addr; /* insert device address */
> +
> + return alen;
> +}
> +
> static int eeprom_rw_block(unsigned offset, uchar *addr, unsigned alen,
> uchar *buffer, unsigned len, bool read)
> {
> @@ -94,6 +116,7 @@ int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt
> unsigned end = offset + cnt;
> unsigned blk_off;
> int rcode = 0;
> + uchar addr[3];
>
> /*
> * Read data until done or would cross a page boundary.
> @@ -106,26 +129,8 @@ int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt
> unsigned maxlen;
> #endif
>
> -#if CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 1
> - uchar addr[2];
> -
> - blk_off = offset & 0xFF; /* block offset */
> -
> - addr[0] = offset >> 8; /* block number */
> - addr[1] = blk_off; /* block offset */
> - alen = 2;
> -#else
> - uchar addr[3];
> -
> blk_off = offset & 0xFF; /* block offset */
> -
> - addr[0] = offset >> 16; /* block number */
> - addr[1] = offset >> 8; /* upper address octet */
> - addr[2] = blk_off; /* lower address octet */
> - alen = 3;
> -#endif /* CONFIG_SYS_I2C_EEPROM_ADDR_LEN */
> -
> - addr[0] |= dev_addr; /* insert device address */
> + alen = eeprom_addr(dev_addr, offset, addr);
>
> len = end - offset;
>
> @@ -156,6 +161,7 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn
> unsigned end = offset + cnt;
> unsigned blk_off;
> int rcode = 0;
> + uchar addr[3];
>
> #if defined(CONFIG_SYS_EEPROM_WREN)
> eeprom_write_enable (dev_addr,1);
> @@ -172,26 +178,8 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn
> unsigned maxlen;
> #endif
>
> -#if CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 1
> - uchar addr[2];
> -
> blk_off = offset & 0xFF; /* block offset */
> -
> - addr[0] = offset >> 8; /* block number */
> - addr[1] = blk_off; /* block offset */
> - alen = 2;
> -#else
> - uchar addr[3];
> -
> - blk_off = offset & 0xFF; /* block offset */
> -
> - addr[0] = offset >> 16; /* block number */
> - addr[1] = offset >> 8; /* upper address octet */
> - addr[2] = blk_off; /* lower address octet */
> - alen = 3;
> -#endif /* CONFIG_SYS_I2C_EEPROM_ADDR_LEN */
> -
> - addr[0] |= dev_addr; /* insert device address */
> + alen = eeprom_addr(dev_addr, offset, addr);
>
> len = end - offset;
>
>
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
next prev parent reply other threads:[~2015-11-16 11:28 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-10 19:53 [U-Boot] [PATCH 01/17] tricorder: rewrite tricordereeprom command Marek Vasut
2015-11-10 19:53 ` [U-Boot] [PATCH 02/17] eeprom: Shuffle code around Marek Vasut
2015-11-16 11:26 ` Heiko Schocher
2015-11-22 15:53 ` [U-Boot] [U-Boot,02/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 03/17] eeprom: Zap CONFIG_SYS_I2C_MULTI_EEPROMS Marek Vasut
2015-11-16 11:26 ` Heiko Schocher
2015-11-22 15:53 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 04/17] eeprom: Zap CONFIG_SYS_EEPROM_X40430 Marek Vasut
2015-11-16 11:27 ` Heiko Schocher
2015-11-22 15:53 ` [U-Boot] [U-Boot,04/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 05/17] eeprom: Zap eeprom_probe() Marek Vasut
2015-11-16 11:27 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot,05/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 06/17] eeprom: Zap CONFIG_SPI_X Marek Vasut
2015-11-16 11:27 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot,06/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 07/17] eeprom: Pull out the I/O code Marek Vasut
2015-11-16 11:27 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot,07/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 08/17] eeprom: Pull out address computation Marek Vasut
2015-11-16 11:28 ` Heiko Schocher [this message]
2015-11-22 15:54 ` [U-Boot] [U-Boot,08/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 09/17] eeprom: Make eeprom_write_enable() weak Marek Vasut
2015-11-16 11:28 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 10/17] eeprom: Pull out CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS Marek Vasut
2015-11-16 11:28 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 11/17] eeprom: Suck the ifdef into eeprom_init() Marek Vasut
2015-11-16 11:28 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 12/17] eeprom: Pull out CONFIG_SYS_EEPROM_PAGE_WRITE_BITS Marek Vasut
2015-11-16 11:29 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 13/17] eeprom: Pull out transfer length computation Marek Vasut
2015-11-16 11:31 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 14/17] eeprom: Pull out the RW loop Marek Vasut
2015-11-16 11:31 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot,14/17] " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 15/17] eeprom: Add bus argument to eeprom_init() Marek Vasut
2015-11-16 11:32 ` Heiko Schocher
2015-11-21 13:48 ` Tom Rini
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 16/17] eeprom: Add support for selecting i2c bus Marek Vasut
2015-11-16 11:32 ` Heiko Schocher
2015-11-22 15:54 ` [U-Boot] [U-Boot, " Tom Rini
2015-11-10 19:53 ` [U-Boot] [PATCH 17/17] eeprom: Clean up checkpatch issues Marek Vasut
2015-11-16 11:32 ` Heiko Schocher
2015-11-22 15:55 ` [U-Boot] [U-Boot,17/17] " Tom Rini
2015-11-16 11:26 ` [U-Boot] [PATCH 01/17] tricorder: rewrite tricordereeprom command Heiko Schocher
2015-11-22 15:53 ` [U-Boot] [U-Boot, " Tom Rini
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=5649BDC2.3010201@denx.de \
--to=hs@denx.de \
--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.