diff options
author | David Hendricks <dhendrix@chromium.org> | 2013-02-03 20:47:38 -0800 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2013-02-04 06:08:20 +0100 |
commit | 2354ef8869a287cf4c7de792c17485ad82b026cf (patch) | |
tree | dab61044490e3d44214dcc7e8a10f858bed956f8 /src/mainboard | |
parent | aa6701c090c013c1783b138e02277090615508ee (diff) | |
download | coreboot-2354ef8869a287cf4c7de792c17485ad82b026cf.tar.xz |
exynos/snow: get rid of board-specific arbitration code
Snow's AP, EC, PMU, and smarty battery share a bus. Both the AP and
EC can act as a master, so to avoid conflicts an arbitration
mechanism consisting of two GPIOs is used.
By default, the AP "owns" the bus unless it is off (in which case
the EC doesn't monitor the arbitration pins). This means the boot
firmware does not need to worry about these lines. The payload may
if it needs to communicate with the EC, though.
In any case, board-specific bus arbitration logic does not belong
in a low-level driver that is supposed to be generic for an entire
CPU family. If the payload needs to talk to the EC, we'll deal with
it there.
Change-Id: I0774d4592af2b21b6ad668441532c5ceab988404
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/2272
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/mainboard')
-rw-r--r-- | src/mainboard/google/snow/bootblock.c | 14 | ||||
-rw-r--r-- | src/mainboard/google/snow/smdk5250_spl.c | 15 |
2 files changed, 0 insertions, 29 deletions
diff --git a/src/mainboard/google/snow/bootblock.c b/src/mainboard/google/snow/bootblock.c index fd3c505b1e..58d347d5a6 100644 --- a/src/mainboard/google/snow/bootblock.c +++ b/src/mainboard/google/snow/bootblock.c @@ -649,15 +649,8 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buffer, int len) #endif if (!i2c) return -1; -#if 0 - if (board_i2c_claim_bus(i2c->node)) { - debug("I2C cannot claim bus %d\n", i2c->bus_num); - return -1; - } -#endif ret = i2c_transfer(i2c->regs, I2C_READ, chip << 1, &xaddr[4 - alen], alen, buffer, len); - //board_i2c_release_bus(i2c->node); if (ret) { //debug("I2c read: failed %d\n", ret); return 1; @@ -702,15 +695,8 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len) i2c = &i2c0; if (!i2c) return -1; -#if 0 - if (board_i2c_claim_bus(i2c->node)) { - //debug("I2C cannot claim bus %d\n", i2c->bus_num); - return -1; - } -#endif ret = i2c_transfer(i2c->regs, I2C_WRITE, chip << 1, &xaddr[4 - alen], alen, buffer, len); - //board_i2c_release_bus(i2c->node); return ret != 0; } diff --git a/src/mainboard/google/snow/smdk5250_spl.c b/src/mainboard/google/snow/smdk5250_spl.c index 0dbd4e1165..33f27b17db 100644 --- a/src/mainboard/google/snow/smdk5250_spl.c +++ b/src/mainboard/google/snow/smdk5250_spl.c @@ -87,18 +87,3 @@ int board_wakeup_permitted(void) return !is_bad_wake; } - -/* - * TODO(sjg@chromium.org): - * Declared there here for SPL, since there is no core i2c subsystem and - * cmd_i2c.c is not included. - */ -void board_i2c_release_bus(int node) -{ -} - -int board_i2c_claim_bus(int node) -{ - /* EC is not allowed to touch the bus until we enter U-Boot */ - return 0; -} |