Commit 4f296d09e13c04a7bca38f6cf1150b9417d054d4

Authored by Marek Vasut
Committed by Tom Rini
1 parent 8961dac970

eeprom: Shuffle code around

Just move the code around so that the forward declarations are not
necessary. Also zap a few checkpatch issues where applicable and
zap the use of #ifdef CONFIG_CMD_EEPROM in the code, since this is
always true.

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>
Reviewed-by: Heiko Schocher <hs@denx.de>

Showing 1 changed file with 70 additions and 98 deletions Side-by-side Diff

... ... @@ -25,94 +25,55 @@
25 25 #include <command.h>
26 26 #include <i2c.h>
27 27  
28   -extern void eeprom_init (void);
29   -extern int eeprom_read (unsigned dev_addr, unsigned offset,
30   - uchar *buffer, unsigned cnt);
31   -extern int eeprom_write (unsigned dev_addr, unsigned offset,
32   - uchar *buffer, unsigned cnt);
33   -#if defined(CONFIG_SYS_EEPROM_WREN)
34   -extern int eeprom_write_enable (unsigned dev_addr, int state);
  28 +#ifndef CONFIG_SYS_I2C_SPEED
  29 +#define CONFIG_SYS_I2C_SPEED 50000
35 30 #endif
36 31  
37   -
  32 +/* Maximum number of times to poll for acknowledge after write */
38 33 #if defined(CONFIG_SYS_EEPROM_X40430)
39   - /* Maximum number of times to poll for acknowledge after write */
40 34 #define MAX_ACKNOWLEDGE_POLLS 10
41 35 #endif
42 36  
43   -/* ------------------------------------------------------------------------- */
44   -
45   -#if defined(CONFIG_CMD_EEPROM)
46   -static int do_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
47   -{
48   - const char *const fmt =
49   - "\nEEPROM @0x%lX %s: addr %08lx off %04lx count %ld ... ";
50   -
51   -#if defined(CONFIG_SYS_I2C_MULTI_EEPROMS)
52   - if (argc == 6) {
53   - ulong dev_addr = simple_strtoul (argv[2], NULL, 16);
54   - ulong addr = simple_strtoul (argv[3], NULL, 16);
55   - ulong off = simple_strtoul (argv[4], NULL, 16);
56   - ulong cnt = simple_strtoul (argv[5], NULL, 16);
57   -#else
58   - if (argc == 5) {
59   - ulong dev_addr = CONFIG_SYS_DEF_EEPROM_ADDR;
60   - ulong addr = simple_strtoul (argv[2], NULL, 16);
61   - ulong off = simple_strtoul (argv[3], NULL, 16);
62   - ulong cnt = simple_strtoul (argv[4], NULL, 16);
63   -#endif /* CONFIG_SYS_I2C_MULTI_EEPROMS */
64   -
65   -# if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
66   - eeprom_init ();
67   -# endif /* !CONFIG_SPI */
68   -
69   - if (strcmp (argv[1], "read") == 0) {
70   - int rcode;
71   -
72   - printf (fmt, dev_addr, argv[1], addr, off, cnt);
73   -
74   - rcode = eeprom_read (dev_addr, off, (uchar *) addr, cnt);
75   -
76   - puts ("done\n");
77   - return rcode;
78   - } else if (strcmp (argv[1], "write") == 0) {
79   - int rcode;
80   -
81   - printf (fmt, dev_addr, argv[1], addr, off, cnt);
82   -
83   - rcode = eeprom_write (dev_addr, off, (uchar *) addr, cnt);
84   -
85   - puts ("done\n");
86   - return rcode;
87   - }
88   - }
89   -
90   - return CMD_RET_USAGE;
91   -}
92   -#endif
93   -
94   -/*-----------------------------------------------------------------------
95   - *
  37 +/*
96 38 * for CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 2 (16-bit EEPROM address) offset is
97 39 * 0x000nxxxx for EEPROM address selectors at n, offset xxxx in EEPROM.
98 40 *
99 41 * for CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 1 (8-bit EEPROM page address) offset is
100 42 * 0x00000nxx for EEPROM address selectors and page number at n.
101 43 */
102   -
103 44 #if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
104   -#if !defined(CONFIG_SYS_I2C_EEPROM_ADDR_LEN) || CONFIG_SYS_I2C_EEPROM_ADDR_LEN < 1 || CONFIG_SYS_I2C_EEPROM_ADDR_LEN > 2
  45 +#if !defined(CONFIG_SYS_I2C_EEPROM_ADDR_LEN) || \
  46 + (CONFIG_SYS_I2C_EEPROM_ADDR_LEN < 1) || \
  47 + (CONFIG_SYS_I2C_EEPROM_ADDR_LEN > 2)
105 48 #error CONFIG_SYS_I2C_EEPROM_ADDR_LEN must be 1 or 2
106 49 #endif
107 50 #endif
108 51  
  52 +#if defined(CONFIG_SYS_EEPROM_WREN)
  53 +extern int eeprom_write_enable (unsigned dev_addr, int state);
  54 +#endif
  55 +
  56 +void eeprom_init(void)
  57 +{
  58 + /* SPI EEPROM */
  59 +#if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
  60 + spi_init_f ();
  61 +#endif
  62 +
  63 + /* I2C EEPROM */
  64 +#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C_SOFT)
  65 + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
  66 +#endif
  67 +}
  68 +
109 69 int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt)
110 70 {
111 71 unsigned end = offset + cnt;
112 72 unsigned blk_off;
113 73 int rcode = 0;
114 74  
115   - /* Read data until done or would cross a page boundary.
  75 + /*
  76 + * Read data until done or would cross a page boundary.
116 77 * We must write the address again when changing pages
117 78 * because the next page may be in a different device.
118 79 */
... ... @@ -174,15 +135,6 @@
174 135 return rcode;
175 136 }
176 137  
177   -/*-----------------------------------------------------------------------
178   - *
179   - * for CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 2 (16-bit EEPROM address) offset is
180   - * 0x000nxxxx for EEPROM address selectors at n, offset xxxx in EEPROM.
181   - *
182   - * for CONFIG_SYS_I2C_EEPROM_ADDR_LEN == 1 (8-bit EEPROM page address) offset is
183   - * 0x00000nxx for EEPROM address selectors and page number at n.
184   - */
185   -
186 138 int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt)
187 139 {
188 140 unsigned end = offset + cnt;
... ... @@ -200,7 +152,8 @@
200 152 #if defined(CONFIG_SYS_EEPROM_WREN)
201 153 eeprom_write_enable (dev_addr,1);
202 154 #endif
203   - /* Write data until done or would cross a write page boundary.
  155 + /*
  156 + * Write data until done or would cross a write page boundary.
204 157 * We must write the address again when changing pages
205 158 * because the address counter only increments within a page.
206 159 */
... ... @@ -363,8 +316,7 @@
363 316 }
364 317  
365 318 #if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
366   -int
367   -eeprom_probe (unsigned dev_addr, unsigned offset)
  319 +int eeprom_probe(unsigned dev_addr, unsigned offset)
368 320 {
369 321 unsigned char chip;
370 322  
371 323  
372 324  
373 325  
374 326  
375 327  
376 328  
... ... @@ -382,31 +334,53 @@
382 334 }
383 335 #endif
384 336  
385   -/*-----------------------------------------------------------------------
386   - * Set default values
387   - */
388   -#ifndef CONFIG_SYS_I2C_SPEED
389   -#define CONFIG_SYS_I2C_SPEED 50000
390   -#endif
391   -
392   -void eeprom_init (void)
  337 +static int do_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
393 338 {
  339 + const char *const fmt =
  340 + "\nEEPROM @0x%lX %s: addr %08lx off %04lx count %ld ... ";
394 341  
395   -#if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
396   - spi_init_f ();
397   -#endif
398   -#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C_SOFT)
399   - i2c_init (CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
400   -#endif
401   -}
  342 +#if defined(CONFIG_SYS_I2C_MULTI_EEPROMS)
  343 + if (argc == 6) {
  344 + ulong dev_addr = simple_strtoul (argv[2], NULL, 16);
  345 + ulong addr = simple_strtoul (argv[3], NULL, 16);
  346 + ulong off = simple_strtoul (argv[4], NULL, 16);
  347 + ulong cnt = simple_strtoul (argv[5], NULL, 16);
  348 +#else
  349 + if (argc == 5) {
  350 + ulong dev_addr = CONFIG_SYS_DEF_EEPROM_ADDR;
  351 + ulong addr = simple_strtoul (argv[2], NULL, 16);
  352 + ulong off = simple_strtoul (argv[3], NULL, 16);
  353 + ulong cnt = simple_strtoul (argv[4], NULL, 16);
  354 +#endif /* CONFIG_SYS_I2C_MULTI_EEPROMS */
402 355  
403   -/*-----------------------------------------------------------------------
404   - */
  356 +# if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
  357 + eeprom_init ();
  358 +# endif /* !CONFIG_SPI */
405 359  
406   -/***************************************************/
  360 + if (strcmp (argv[1], "read") == 0) {
  361 + int rcode;
407 362  
408   -#if defined(CONFIG_CMD_EEPROM)
  363 + printf (fmt, dev_addr, argv[1], addr, off, cnt);
409 364  
  365 + rcode = eeprom_read (dev_addr, off, (uchar *) addr, cnt);
  366 +
  367 + puts ("done\n");
  368 + return rcode;
  369 + } else if (strcmp (argv[1], "write") == 0) {
  370 + int rcode;
  371 +
  372 + printf (fmt, dev_addr, argv[1], addr, off, cnt);
  373 +
  374 + rcode = eeprom_write (dev_addr, off, (uchar *) addr, cnt);
  375 +
  376 + puts ("done\n");
  377 + return rcode;
  378 + }
  379 + }
  380 +
  381 + return CMD_RET_USAGE;
  382 +}
  383 +
410 384 #ifdef CONFIG_SYS_I2C_MULTI_EEPROMS
411 385 U_BOOT_CMD(
412 386 eeprom, 6, 1, do_eeprom,
... ... @@ -424,6 +398,4 @@
424 398 " - read/write `cnt' bytes at EEPROM offset `off'"
425 399 )
426 400 #endif /* CONFIG_SYS_I2C_MULTI_EEPROMS */
427   -
428   -#endif