summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--baseboard/dragonegg/baseboard.c21
-rw-r--r--baseboard/dragonegg/baseboard.h7
-rw-r--r--board/dragonegg/ec.tasklist3
-rw-r--r--board/dragonegg/gpio.inc8
4 files changed, 37 insertions, 2 deletions
diff --git a/baseboard/dragonegg/baseboard.c b/baseboard/dragonegg/baseboard.c
index 9046e8c69c..e4ed7344ab 100644
--- a/baseboard/dragonegg/baseboard.c
+++ b/baseboard/dragonegg/baseboard.c
@@ -8,6 +8,7 @@
#include "charge_state_v2.h"
#include "chipset.h"
#include "console.h"
+#include "driver/bc12/max14637.h"
#include "driver/ppc/nx20p348x.h"
#include "driver/ppc/sn5s330.h"
#include "driver/ppc/syv682x.h"
@@ -223,6 +224,26 @@ struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = {
},
};
+/******************************************************************************/
+/* BC 1.2 chip Configuration */
+const struct max14637_config_t max14637_config[CONFIG_USB_PD_PORT_COUNT] = {
+ {
+ .chip_enable_pin = GPIO_USB_C0_BC12_VBUS_ON_ODL,
+ .chg_det_pin = GPIO_USB_C0_BC12_CHG_MAX,
+ .flags = MAX14637_FLAGS_ENABLE_ACTIVE_LOW,
+ },
+ {
+ .chip_enable_pin = GPIO_USB_C1_BC12_VBUS_ON_ODL,
+ .chg_det_pin = GPIO_USB_C1_BC12_CHG_MAX,
+ .flags = MAX14637_FLAGS_ENABLE_ACTIVE_LOW,
+ },
+ {
+ .chip_enable_pin = GPIO_USB_C2_BC12_VBUS_ON_ODL,
+ .chg_det_pin = GPIO_USB_C2_BC12_CHG_MAX,
+ .flags = MAX14637_FLAGS_ENABLE_ACTIVE_LOW,
+ },
+};
+
/* Power Delivery and charging functions */
void baseboard_tcpc_init(void)
diff --git a/baseboard/dragonegg/baseboard.h b/baseboard/dragonegg/baseboard.h
index d9b272b7dd..53b1a894da 100644
--- a/baseboard/dragonegg/baseboard.h
+++ b/baseboard/dragonegg/baseboard.h
@@ -36,8 +36,7 @@
/* Common charger defines */
#define CONFIG_CHARGE_MANAGER
-/* TODO (b/111309500): Enable this option when support for MAX14637 is added */
-/* #define CONFIG_CHARGE_RAMP_HW */
+#define CONFIG_CHARGE_RAMP_HW
#define CONFIG_CHARGER
#define CONFIG_CHARGER_BQ25710
#define CONFIG_CHARGER_DISCHARGE_ON_AC
@@ -56,6 +55,10 @@
#define CONFIG_BATTERY_REVIVE_DISCONNECT
#define CONFIG_BATTERY_SMART
+/* BC 1.2 Detection */
+#define CONFIG_BC12_DETECT_MAX14637
+#define CONFIG_USB_CHARGER
+
/* USB Type C and USB PD defines */
#undef CONFIG_USB_PD_TCPC_LOW_POWER
#undef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
diff --git a/board/dragonegg/ec.tasklist b/board/dragonegg/ec.tasklist
index 870682d48b..e4f8c3ab93 100644
--- a/board/dragonegg/ec.tasklist
+++ b/board/dragonegg/ec.tasklist
@@ -22,6 +22,9 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(USB_CHG_P2, usb_charger_task, 2, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
diff --git a/board/dragonegg/gpio.inc b/board/dragonegg/gpio.inc
index 3faab500be..e3e1260764 100644
--- a/board/dragonegg/gpio.inc
+++ b/board/dragonegg/gpio.inc
@@ -67,6 +67,14 @@ GPIO(USB_OC_ODL, PIN(J, 6), GPIO_ODR_HIGH)
GPIO(EN_USB_A_5V, PIN(G, 6), GPIO_OUT_LOW)
GPIO(EN_USB_A_HIGH_POWER_OD, PIN(D, 4), GPIO_ODR_LOW)
+/* BC 1.2 Detection Signals */
+GPIO(USB_C0_BC12_CHG_MAX, PIN(D, 3), GPIO_INPUT) /* C0 BC 1.2 CDP signal */
+GPIO(USB_C1_BC12_CHG_MAX, PIN(B, 7), GPIO_INPUT) /* C1 BC 1.2 CDP signal */
+GPIO(USB_C2_BC12_CHG_MAX, PIN(K, 0), GPIO_INPUT) /* C2 BC 1.2 CDP signal */
+GPIO(USB_C0_BC12_VBUS_ON_ODL, PIN(C, 0), GPIO_ODR_HIGH) /* C0 BC 1.2 enable signal */
+GPIO(USB_C1_BC12_VBUS_ON_ODL, PIN(E, 5), GPIO_ODR_HIGH) /* C1 BC 1.2 enable signal */
+GPIO(USB_C2_BC12_VBUS_ON_ODL, PIN(K, 1), GPIO_ODR_HIGH) /* C2 BC 1.2 enable signal */
+
/* I2C pins - Alternate function below configures I2C module on these pins */
GPIO(I2C0_SCL, PIN(B, 3), GPIO_INPUT) /* EC_PROG_SCL */
GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT) /* EC_PROG_SDA */