diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2019-08-13 12:36:08 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-08-14 18:55:16 +0000 |
commit | 29b86be6ba06f1de6973a6d2f4fa3c9eba8be0f1 (patch) | |
tree | 8ceeb0ad98e98e2335dfb37e5affabd808bfe3e1 | |
parent | a18332870ba0f77eb686366d616201da6ff90527 (diff) | |
download | chrome-ec-29b86be6ba06f1de6973a6d2f4fa3c9eba8be0f1.tar.gz |
charge_manager: Mark functions overridable
Functions such as board_fill_source_power_info are overridable. This
patch annotates them properly using override macros, and removes their
declarations from board.h.
These functions are declared in both charge_manager.h and
{kukui,krane,kodama}/board.h. The latter causes comm-dev.c to fail
to be compiled in chrome-base/diagnostics.
BUG=none
BRANCH=none
TEST=buildall
Change-Id: I27d6dfe2fa9299550ac5205c34095a4fe02dabdb
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1752597
Tested-by: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r-- | board/kodama/board.c | 5 | ||||
-rw-r--r-- | board/kodama/board.h | 5 | ||||
-rw-r--r-- | board/kukui/board.c | 5 | ||||
-rw-r--r-- | board/kukui/board.h | 5 | ||||
-rw-r--r-- | common/charge_manager.c | 8 | ||||
-rw-r--r-- | include/charge_manager.h | 5 |
6 files changed, 13 insertions, 20 deletions
diff --git a/board/kodama/board.c b/board/kodama/board.c index c16a841dca..a4a45bdb77 100644 --- a/board/kodama/board.c +++ b/board/kodama/board.c @@ -334,17 +334,18 @@ int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state) return charger_get_vbus_voltage(port) < 4400; } -int board_charge_port_is_sink(int port) +__override int board_charge_port_is_sink(int port) { /* TODO(b:128386458): Check POGO_ADC_INT_L */ return 1; } -int board_charge_port_is_connected(int port) +__override int board_charge_port_is_connected(int port) { return gpio_get_level(GPIO_POGO_VBUS_PRESENT); } +__override void board_fill_source_power_info(int port, struct ec_response_usb_pd_power_info *r) { diff --git a/board/kodama/board.h b/board/kodama/board.h index aa73d04da2..88f5c66e2c 100644 --- a/board/kodama/board.h +++ b/board/kodama/board.h @@ -94,7 +94,6 @@ enum charge_port { CHARGE_PORT_USB_C, }; -#include "ec_commands.h" #include "gpio_signal.h" #include "registers.h" @@ -108,10 +107,6 @@ int board_get_version(void); int board_is_sourcing_vbus(int port); void pogo_adc_interrupt(enum gpio_signal signal); int board_discharge_on_ac(int enable); -int board_charge_port_is_sink(int port); -int board_charge_port_is_connected(int port); -void board_fill_source_power_info(int port, - struct ec_response_usb_pd_power_info *r); #endif /* !__ASSEMBLER__ */ diff --git a/board/kukui/board.c b/board/kukui/board.c index 2f6315426b..0005b0cd68 100644 --- a/board/kukui/board.c +++ b/board/kukui/board.c @@ -496,17 +496,18 @@ int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state) return charger_get_vbus_voltage(port) < 4400; } -int board_charge_port_is_sink(int port) +__override int board_charge_port_is_sink(int port) { /* TODO(b:128386458): Check POGO_ADC_INT_L */ return 1; } -int board_charge_port_is_connected(int port) +__override int board_charge_port_is_connected(int port) { return gpio_get_level(GPIO_POGO_VBUS_PRESENT); } +__override void board_fill_source_power_info(int port, struct ec_response_usb_pd_power_info *r) { diff --git a/board/kukui/board.h b/board/kukui/board.h index b6561b13f1..7628857a2a 100644 --- a/board/kukui/board.h +++ b/board/kukui/board.h @@ -119,7 +119,6 @@ enum charge_port { #endif }; -#include "ec_commands.h" #include "gpio_signal.h" #include "registers.h" @@ -133,10 +132,6 @@ int board_get_version(void); int board_is_sourcing_vbus(int port); void pogo_adc_interrupt(enum gpio_signal signal); int board_discharge_on_ac(int enable); -int board_charge_port_is_sink(int port); -int board_charge_port_is_connected(int port); -void board_fill_source_power_info(int port, - struct ec_response_usb_pd_power_info *r); #endif /* !__ASSEMBLER__ */ diff --git a/common/charge_manager.c b/common/charge_manager.c index c5380bbb35..4c56a21afc 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -44,7 +44,7 @@ * - Last, pick one from the rest suppliers. Also note that some boards assume * wireless suppliers as low priority. */ -__attribute__((weak)) const int supplier_priority[] = { +__overridable const int supplier_priority[] = { #if CONFIG_DEDICATED_CHARGE_PORT_COUNT > 0 [CHARGE_SUPPLIER_DEDICATED] = 0, #endif @@ -1385,19 +1385,19 @@ DECLARE_CONSOLE_COMMAND(chgsup, charge_supplier_info, NULL, "print chg supplier info"); #endif -__attribute__((weak)) +__overridable int board_charge_port_is_sink(int port) { return 1; } -__attribute__((weak)) +__overridable int board_charge_port_is_connected(int port) { return 1; } -__attribute__((weak)) +__overridable void board_fill_source_power_info(int port, struct ec_response_usb_pd_power_info *r) { diff --git a/include/charge_manager.h b/include/charge_manager.h index 53e0ff1b25..4c29ea15a5 100644 --- a/include/charge_manager.h +++ b/include/charge_manager.h @@ -276,7 +276,7 @@ enum adc_channel board_get_vbus_adc(int port); * @param port Dedicated charge port. * @return 1 if the port is sink. */ -int board_charge_port_is_sink(int port); +__override_proto int board_charge_port_is_sink(int port); /** * Board specific callback to check if the given port is connected. @@ -284,7 +284,7 @@ int board_charge_port_is_sink(int port); * @param port Dedicated charge port. * @return 1 if the port is connected. */ -int board_charge_port_is_connected(int port); +__override_proto int board_charge_port_is_connected(int port); /** * Board specific callback to fill passed power_info structure with current info @@ -294,6 +294,7 @@ int board_charge_port_is_connected(int port); * @param port Dedicated charge port. * @param r USB PD power info to be updated. */ +__override_proto void board_fill_source_power_info(int port, struct ec_response_usb_pd_power_info *r); |