mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 09:01:35 +00:00
Add check to prevent duplicate PIN assignments
All PIN() assignments in board/$BOARD/gpio.inc must be unique, since otherwise you're just creating duplicate names and table entries for the same core interrupt and may not be initializing things the way you think. BUG=none BRANCH=none TEST=make buildall; test on Cr50 hardware Also verified that the image size is exactly the same before an after this CL. Change-Id: Ifb1805a010905f67fc5c0d246b6252af73715409 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/383773 Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
d9048f0896
commit
eb10d4518b
@@ -9,18 +9,18 @@
|
||||
* Note: Those with interrupt handlers must be declared first. */
|
||||
|
||||
GPIO_INT(LID_OPEN, PIN(0, 0), GPIO_INT_BOTH, lid_interrupt)
|
||||
GPIO_INT(POWER_BUTTON_L, PIN(0, 0), GPIO_INT_BOTH, power_button_interrupt)
|
||||
GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt)
|
||||
GPIO_INT(BUTTON_VOLUME_DOWN_L, PIN(0, 0), GPIO_INT_BOTH, button_interrupt)
|
||||
GPIO_INT(BUTTON_VOLUME_UP, PIN(0, 0), GPIO_INT_BOTH, button_interrupt)
|
||||
GPIO_INT(CHARGE_DONE, PIN(0, 0), GPIO_INT_BOTH, inductive_charging_interrupt)
|
||||
GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt)
|
||||
GPIO_INT(AC_PRESENT, PIN(0, 2), GPIO_INT_BOTH, extpower_interrupt)
|
||||
GPIO_INT(BUTTON_VOLUME_DOWN_L, PIN(0, 3), GPIO_INT_BOTH, button_interrupt)
|
||||
GPIO_INT(BUTTON_VOLUME_UP, PIN(0, 4), GPIO_INT_BOTH, button_interrupt)
|
||||
GPIO_INT(CHARGE_DONE, PIN(0, 5), GPIO_INT_BOTH, inductive_charging_interrupt)
|
||||
|
||||
GPIO(EC_INT_L, PIN(0, 0), 0)
|
||||
GPIO(WP, PIN(0, 0), 0)
|
||||
GPIO(ENTERING_RW, PIN(0, 0), 0)
|
||||
GPIO(PCH_BKLTEN, PIN(0, 0), 0)
|
||||
GPIO(ENABLE_BACKLIGHT, PIN(0, 0), 0)
|
||||
GPIO(EC_INT_L, PIN(0, 6), 0)
|
||||
GPIO(WP, PIN(0, 7), 0)
|
||||
GPIO(ENTERING_RW, PIN(0, 8), 0)
|
||||
GPIO(PCH_BKLTEN, PIN(0, 9), 0)
|
||||
GPIO(ENABLE_BACKLIGHT, PIN(0, 10), 0)
|
||||
|
||||
/* Inductive charging */
|
||||
GPIO(CHARGE_EN, PIN(0, 0), 0)
|
||||
GPIO(BASE_CHG_VDD_EN, PIN(0, 0), 0)
|
||||
GPIO(CHARGE_EN, PIN(0, 11), 0)
|
||||
GPIO(BASE_CHG_VDD_EN, PIN(0, 12), 0)
|
||||
|
||||
@@ -37,3 +37,18 @@ const int gpio_ih_count = ARRAY_SIZE(gpio_irq_handlers);
|
||||
#define GPIO_INT(name, pin, flags, signal) \
|
||||
BUILD_ASSERT(GPIO_##name < ARRAY_SIZE(gpio_irq_handlers));
|
||||
#include "gpio.wrap"
|
||||
|
||||
/*
|
||||
* All PIN(...) assignments must be unique, since otherwise you're just
|
||||
* creating duplicate names for the same thing, and may not always be
|
||||
* initializing them the way you think.
|
||||
*/
|
||||
#define GPIO(name, pin, flags) pin
|
||||
#define GPIO_INT(name, pin, flags, signal) pin
|
||||
/*
|
||||
* The compiler will complain if we use the same name twice. The linker ignores
|
||||
* anything that gets by.
|
||||
*/
|
||||
#define PIN(a, b...) static const int _pin_ ## a ## _ ## b \
|
||||
__attribute__((unused, section(".unused"))) = __LINE__;
|
||||
#include "gpio.wrap"
|
||||
|
||||
Reference in New Issue
Block a user