summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-08-13 12:36:08 -0700
committerCommit Bot <commit-bot@chromium.org>2019-08-14 18:55:16 +0000
commit29b86be6ba06f1de6973a6d2f4fa3c9eba8be0f1 (patch)
tree8ceeb0ad98e98e2335dfb37e5affabd808bfe3e1
parenta18332870ba0f77eb686366d616201da6ff90527 (diff)
downloadchrome-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.c5
-rw-r--r--board/kodama/board.h5
-rw-r--r--board/kukui/board.c5
-rw-r--r--board/kukui/board.h5
-rw-r--r--common/charge_manager.c8
-rw-r--r--include/charge_manager.h5
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);