diff options
author | Tom Hughes <tomhughes@chromium.org> | 2021-10-05 22:05:23 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-09 17:19:56 +0000 |
commit | 4433b13348b354f1eca560fdbcb3c97257a36865 (patch) | |
tree | 5a5b5a0469556ac3250d99ca98454805cd380524 /board | |
parent | 71a950203dbd641ef73353e14024731b892db80c (diff) | |
download | chrome-ec-4433b13348b354f1eca560fdbcb3c97257a36865.tar.gz |
board/coral: Fix keyboard backlight GPIO
When building with clang, it reports:
board/coral/gpio.inc:164:1: error: initializer overrides prior initialization
of this subobject [-Werror,-Winitializer-overrides]
ALTERNATE(PIN(B, 6), 3, MODULE_PWM, 0) /* PWM KB Backlight */
This expands to:
static const struct gpio_alt_func gpio_alt_funcs[] = {
...
{GPIO_PORT_B, (1U << (6)), .func = (3), .module_id = (MODULE_PWM), .flags =
(0)},
};
The problem is that struct gpio_alt_func has the order "module_id, func,
port, mask, flags", so in this case we are setting func to (1U << (1))
and then to (0).
It looks like the intent was to use the PIN_MASK macro instead of PIN,
which expands to:
static const struct gpio_alt_func gpio_alt_funcs[] = {
...
{.port = GPIO_PORT_B, .mask = ((1U << (6))), .func = (3), .module_id =
(MODULE_PWM), .flags = (0)},
};
BRANCH=none
BUG=b:172020503
TEST=make V=1 CC=arm-none-eabi-clang BOARD=coral
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: Idcf0d0f9883eb46439d5b1a57c0118e496b74d44
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3205486
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/coral/gpio.inc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/board/coral/gpio.inc b/board/coral/gpio.inc index 8e52eeeed2..0f3acc3375 100644 --- a/board/coral/gpio.inc +++ b/board/coral/gpio.inc @@ -161,7 +161,7 @@ ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* GPIOB5-B4 for EC_I2C_USB_C0_PD ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* GPOPB3-B2 for EC_I2C_USB_C1_PD_SDA/SCL */ ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* GPIOD1-D0 for EC_I2C_POWER_SDA/SCL */ -ALTERNATE(PIN(B, 6), 3, MODULE_PWM, 0) /* PWM KB Backlight */ +ALTERNATE(PIN_MASK(B, BIT(6)), 3, MODULE_PWM, 0) /* PWM KB Backlight */ /* FIXME: Make UART RX an interrupt? */ ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */ |