diff options
author | Anton Staaf <robotboy@chromium.org> | 2014-06-24 07:52:49 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-06-26 02:43:01 +0000 |
commit | 9ccfd4553e708a5df4be3aa18b97c75da3f6c1b9 (patch) | |
tree | bd10678c7ee25901de97260967b8bee4a849baa5 /board/bds | |
parent | 88c0ffd692b4e6d5fadc75bb15255e0684d6a1c9 (diff) | |
download | chrome-ec-9ccfd4553e708a5df4be3aa18b97c75da3f6c1b9.tar.gz |
gpio: Replace duplication in gpio declarations with X-macro file
Previously each board.h and board.c contained an enum and an array
for gpio definitons that had to be manually kept in sync, with no
compiler assistance other than that their lengths matched.
This change adds a single gpio.inc file that declares all gpio's
that a board uses and is used as an X-macro include file to
generate both the gpio_signal enum and the gpio_list array.
Signed-off-by: Anton Staaf <robotboy@chromium.org>
BRANCH=none
TEST=make buildall -j
Change-Id: If9c9feca968619a59ff9f20701359bcb9374e4da
Reviewed-on: https://chromium-review.googlesource.com/205354
Tested-by: Anton Staaf <robotboy@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Anton Staaf <robotboy@chromium.org>
Diffstat (limited to 'board/bds')
-rw-r--r-- | board/bds/board.c | 11 | ||||
-rw-r--r-- | board/bds/board.h | 15 | ||||
-rw-r--r-- | board/bds/gpio.inc | 17 |
3 files changed, 19 insertions, 24 deletions
diff --git a/board/bds/board.c b/board/bds/board.c index 7dc4985f9a..8f2142df09 100644 --- a/board/bds/board.c +++ b/board/bds/board.c @@ -38,16 +38,7 @@ const struct i2c_port_t i2c_ports[] = { }; const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); - -/* GPIO signal list. Must match order from enum gpio_signal. */ -const struct gpio_info gpio_list[] = { - {"RECOVERY_L", GPIO_D, (1<<1), GPIO_PULL_UP, NULL}, - {"DEBUG_LED", GPIO_A, (1<<7), GPIO_OUT_LOW, NULL}, - /* Unimplemented signals which we need to emulate for now */ - GPIO_SIGNAL_NOT_IMPLEMENTED("WP"), - GPIO_SIGNAL_NOT_IMPLEMENTED("ENTERING_RW"), -}; -BUILD_ASSERT(ARRAY_SIZE(gpio_list) == GPIO_COUNT); +#include "gpio_list.h" /* Pins with alternate functions */ const struct gpio_alt_func gpio_alt_funcs[] = { diff --git a/board/bds/board.h b/board/bds/board.h index 45ed2f9b72..96171e0f57 100644 --- a/board/bds/board.h +++ b/board/bds/board.h @@ -43,20 +43,7 @@ enum pwm_channel { /* Second UART port */ #define CONFIG_UART_HOST 1 -/* GPIO signal list */ -enum gpio_signal { - GPIO_RECOVERY_L = 0, /* Recovery signal from DOWN button */ - GPIO_DEBUG_LED, /* Debug LED */ - /* - * Signals which aren't implemented on BDS but we'll emulate anyway, to - * make it more convenient to debug other code. - */ - GPIO_WP, /* Write protect input */ - GPIO_ENTERING_RW, /* EC entering RW code */ - - /* Number of GPIOs; not an actual GPIO */ - GPIO_COUNT -}; +#include "gpio_signal.h" /* EEPROM blocks */ #define EEPROM_BLOCK_EOPTION 1 /* EC persistent options */ diff --git a/board/bds/gpio.inc b/board/bds/gpio.inc new file mode 100644 index 0000000000..f22d0d0d7a --- /dev/null +++ b/board/bds/gpio.inc @@ -0,0 +1,17 @@ +/* -*- mode:c -*- + * + * Copyright (c) 2014 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Recovery signal from DOWN button */ +GPIO(RECOVERY_L, D, 1, GPIO_PULL_UP, NULL) +GPIO(DEBUG_LED, A, 7, GPIO_OUT_LOW, NULL) + +/* + * Signals which aren't implemented on BDS but we'll emulate anyway, to + * make it more convenient to debug other code. + */ +UNIMPLEMENTED(WP) /* Write protect input */ +UNIMPLEMENTED(ENTERING_RW) /* EC entering RW code */ |