diff options
author | Yilun Lin <yllin@google.com> | 2018-08-17 15:18:12 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-08-21 10:33:48 -0700 |
commit | 0b2179c3179a31fde8678e9700477da2365c63ff (patch) | |
tree | 407e3251e637c24b18e1351c291c90f2b480b71a | |
parent | b042e8ef06ccea5afa33134f37b16b1f61c7f84c (diff) | |
download | chrome-ec-0b2179c3179a31fde8678e9700477da2365c63ff.tar.gz |
gpio.wrap: add *_R[OW] macros for easier pin configuration.
TEST=make BOARD=kukui -j
BUG=b:80159522
BRANCH=None
Change-Id: Iea32d39923d88baaacc2973dd71615b1bacfada3
Signed-off-by: Yilun Lin <yllin@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1182702
Commit-Ready: Yilun Lin <yllin@chromium.org>
Tested-by: Yilun Lin <yllin@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
-rw-r--r-- | include/gpio.wrap | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/include/gpio.wrap b/include/gpio.wrap index d9f9db2890..c36130948b 100644 --- a/include/gpio.wrap +++ b/include/gpio.wrap @@ -73,12 +73,61 @@ #define UNIMPLEMENTED(name) #endif +/* + * RO/RW pin macro. + * + * Some boards may have very different pin configurations between RO and RW, and + * also may vary from revisions to revisions. The RO/RW pin macros can ease the + * maintance effort. + */ + +#ifdef SECTION_IS_RO +#define GPIO_RO(name, pin, flags) GPIO(name, pin, flags) +#define GPIO_RW(name, pin, flags) +#define GPIO_INT_RO(name, pin, flags, signal) GPIO_INT(name, pin, flags, signal) +#define GPIO_INT_RW(name, pin, flags, signal) +#define ALTERNATE_RO(pinmask, function, module, flags) \ + ALTERNATE(pinmask, function, module, flags) +#define ALTERNATE_RW(pinmask, function, module, flags) +#define UNIMPLEMENTED_RO(name) UNIMPLEMENTED(name) +#define UNIMPLEMENTED_RW(name) +#elif defined(SECTION_IS_RW) +#define GPIO_RO(name, pin, flags) +#define GPIO_RW(name, pin, flags) GPIO(name, pin, flags) +#define GPIO_INT_RO(name, pin, flags, signal) +#define GPIO_INT_RW(name, pin, flags, signal) GPIO_INT(name, pin, flags, signal) +#define ALTERNATE_RO(pinmask, function, module, flags) +#define ALTERNATE_RW(pinmask, function, module, flags) \ + ALTERNATE(pinmask, function, module, flags) +#define UNIMPLEMENTED_RO(name) +#define UNIMPLEMENTED_RW(name) UNIMPLEMENTED(name) +#else +#define GPIO_RO(name, pin, flags) GPIO(name, pin, flags) +#define GPIO_RW(name, pin, flags) GPIO(name, pin, flags) +#define GPIO_INT_RO(name, pin, flags, signal) GPIO_INT(name, pin, flags, signal) +#define GPIO_INT_RW(name, pin, flags, signal) GPIO_INT(name, pin, flags, signal) +#define ALTERNATE_RO(pinmask, function, module, flags) \ + ALTERNATE(pinmask, function, module, flags) +#define ALTERNATE_RW(pinmask, function, module, flags) \ + ALTERNATE(pinmask, function, module, flags) +#define UNIMPLEMENTED_RO(name) UNIMPLEMENTED(name) +#define UNIMPLEMENTED_RW(name) UNIMPLEMENTED(name) +#endif + #include "gpio.inc" /* * Once the gpio.inc file has been included these macros are no longer needed. */ #undef GPIO +#undef GPIO_RO +#undef GPIO_RW #undef GPIO_INT +#undef GPIO_INT_RO +#undef GPIO_INT_RW #undef ALTERNATE +#undef ALTERNATE_RO +#undef ALTERNATE_RW #undef UNIMPLEMENTED +#undef UNIMPLEMENTED_RO +#undef UNIMPLEMENTED_RW |