summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2019-08-08 09:56:09 +0800
committerCommit Bot <commit-bot@chromium.org>2019-08-16 05:43:14 +0000
commit2a6b114c3aa1e24f2fc060bd36e1187faaae073a (patch)
tree39e1e3b1e6116505418dc9cafd08dad6c16bd32d
parent623b89a51152d59bdf82dfdfcfcfb4c76c52a884 (diff)
downloadchrome-ec-2a6b114c3aa1e24f2fc060bd36e1187faaae073a.tar.gz
hammer: Add magnemite board
A close hammer derivative. BRANCH=none BUG=b:138968914 TEST=make BOARD=magnemite -j Flash into staff, see the board boot: util/flash_ec --board=magnemite --port=9000 Change-Id: Ibe5c3f4b0fb4a31d4667d5dc4d76a691b0e64e39 Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1741599 Reviewed-by: Yilun Lin <yllin@chromium.org>
-rw-r--r--board/hammer/board.c4
-rw-r--r--board/hammer/board.h13
-rw-r--r--board/hammer/ec.tasklist8
-rw-r--r--board/hammer/gpio.inc6
-rw-r--r--board/hammer/variants.h4
l---------board/magnemite1
-rwxr-xr-xutil/flash_ec1
7 files changed, 36 insertions, 1 deletions
diff --git a/board/hammer/board.c b/board/hammer/board.c
index fe50321fa9..aec8f457f4 100644
--- a/board/hammer/board.c
+++ b/board/hammer/board.c
@@ -85,6 +85,7 @@ void usb_spi_board_enable(struct usb_spi_config const *config) {}
void usb_spi_board_disable(struct usb_spi_config const *config) {}
#endif /* !HAS_SPI_TOUCHPAD */
+#ifdef CONFIG_I2C
/* I2C ports */
const struct i2c_port_t i2c_ports[] = {
{"master", I2C_PORT_MASTER, 400,
@@ -95,6 +96,7 @@ const struct i2c_port_t i2c_ports[] = {
#endif
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
+#endif
#ifdef BOARD_STAFF
#define KBLIGHT_PWM_FREQ 100 /* Hz */
@@ -243,6 +245,7 @@ int board_has_keyboard_backlight(void)
return has_keyboard_backlight;
}
+#ifndef HAS_NO_TOUCHPAD
/* Reset the touchpad, mainly used to recover it from malfunction. */
void board_touchpad_reset(void)
{
@@ -258,6 +261,7 @@ void board_touchpad_reset(void)
msleep(10);
#endif
}
+#endif /* !HAS_NO_TOUCHPAD */
#ifdef CONFIG_KEYBOARD_TABLET_MODE_SWITCH
static void board_tablet_mode_change(void)
diff --git a/board/hammer/board.h b/board/hammer/board.h
index a64167adc4..77824c1057 100644
--- a/board/hammer/board.h
+++ b/board/hammer/board.h
@@ -112,6 +112,9 @@
#ifdef SECTION_IS_RW
#define USB_IFACE_HID_KEYBOARD 0
#define USB_IFACE_UPDATE 1
+#ifdef HAS_NO_TOUCHPAD
+#define USB_IFACE_COUNT 2
+#else /* !HAS_NO_TOUCHPAD */
#define USB_IFACE_HID_TOUCHPAD 2
/* Can be either I2C or SPI passthrough, depending on the board. */
#define USB_IFACE_I2C_SPI 3
@@ -121,6 +124,7 @@
#else /* !CONFIG_USB_ISOCHRONOUS */
#define USB_IFACE_COUNT 4
#endif /* CONFIG_USB_ISOCHRONOUS */
+#endif /* !HAS_NO_TOUCHPAD */
#else /* !SECTION_IS_RW */
#define USB_IFACE_UPDATE 0
#define USB_IFACE_COUNT 1
@@ -131,6 +135,9 @@
#define USB_EP_UPDATE 1
#ifdef SECTION_IS_RW
#define USB_EP_HID_KEYBOARD 2
+#ifdef HAS_NO_TOUCHPAD
+#define USB_EP_COUNT 3
+#else /* !HAS_NO_TOUCHPAD */
#define USB_EP_HID_TOUCHPAD 3
/* Can be either I2C or SPI passthrough, depending on the board. */
#define USB_EP_I2C_SPI 4
@@ -141,6 +148,7 @@
#else /* !CONFIG_USB_ISOCHRONOUS */
#define USB_EP_COUNT 5
#endif /* CONFIG_USB_ISOCHRONOUS */
+#endif /* !HAS_NO_TOUCHPAD */
#else /* !SECTION_IS_RW */
#define USB_EP_COUNT 2
#endif /* SECTION_IS_RW */
@@ -181,6 +189,8 @@
#define CONFIG_USB_HID
#define CONFIG_USB_HID_KEYBOARD
#define CONFIG_USB_HID_KEYBOARD_BACKLIGHT
+
+#ifndef HAS_NO_TOUCHPAD
#define CONFIG_USB_HID_TOUCHPAD
/* Virtual address for touchpad FW in USB updater. */
@@ -188,6 +198,7 @@
/* Include touchpad FW hashes in image */
#define CONFIG_TOUCHPAD_HASH_FW
+#endif /* !HAS_NO_TOUCHPAD */
#define CONFIG_KEYBOARD_DEBUG
#undef CONFIG_KEYBOARD_BOOT_KEYS
@@ -195,11 +206,13 @@
/* Keyboard output port list */
#define KB_OUT_PORT_LIST GPIO_A, GPIO_B, GPIO_C, GPIO_F
+#if defined(HAS_I2C_TOUCHPAD) || defined(CONFIG_LED_DRIVER_LM3630A)
#define CONFIG_I2C
#define CONFIG_I2C_MASTER
#define I2C_PORT_MASTER 0
#define I2C_PORT_KBLIGHT 0
#define I2C_PORT_CHARGER 1
+#endif
/* Enable PWM */
#define CONFIG_PWM
diff --git a/board/hammer/ec.tasklist b/board/hammer/ec.tasklist
index d3a2e17f07..ecdb6db120 100644
--- a/board/hammer/ec.tasklist
+++ b/board/hammer/ec.tasklist
@@ -23,11 +23,17 @@
TASK_ALWAYS_RW(HEATMAP, heatmap_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
-#else
+#elif !defined(HAS_NO_TOUCHPAD)
#define CONFIG_TASK_LIST \
TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
TASK_ALWAYS (HOOKS, hook_task, NULL, 2048) \
TASK_ALWAYS_RW(TOUCHPAD, touchpad_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
+#else
+#define CONFIG_TASK_LIST \
+ TASK_ALWAYS_RO(RWSIG, rwsig_task, NULL, 1280) \
+ TASK_ALWAYS (HOOKS, hook_task, NULL, 2048) \
+ TASK_ALWAYS (CONSOLE, console_task, NULL, 1024) \
+ TASK_NOTEST_RW(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE)
#endif
diff --git a/board/hammer/gpio.inc b/board/hammer/gpio.inc
index 806cb19f7f..24c683f731 100644
--- a/board/hammer/gpio.inc
+++ b/board/hammer/gpio.inc
@@ -9,7 +9,9 @@
* Note: Those with interrupt handlers must be declared first. */
#ifdef SECTION_IS_RW
+#ifndef HAS_NO_TOUCHPAD
GPIO_INT(TOUCHPAD_INT, PIN(B, 8), GPIO_INT_FALLING, touchpad_interrupt)
+#endif /* !HAS_NO_TOUCHPAD */
#ifdef CONFIG_HALL_SENSOR
GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_PULL_UP | GPIO_INT_BOTH, hall_sensor_isr)
#endif /* CONFIG_HALL_SENSOR */
@@ -56,12 +58,14 @@ GPIO(KB_OUT12, PIN(C, 13), GPIO_KB_OUTPUT)
/* initialized. This will avoid driving the lines unintentionally.*/
GPIO(MASTER_I2C_SCL, PIN(B, 6), GPIO_INPUT)
GPIO(MASTER_I2C_SDA, PIN(B, 7), GPIO_INPUT)
+#ifndef HAS_NO_TOUCHPAD
/* TODO(crosbug.com/p/59083): Disable trackpad when appropriate */
#ifdef HAS_EN_PP3300_TP_ACTIVE_HIGH
GPIO(EN_PP3300_TP, PIN(A, 14), GPIO_OUT_HIGH)
#else
GPIO(EN_PP3300_TP_ODL, PIN(A, 14), GPIO_OUT_LOW)
#endif
+#endif /* !HAS_NO_TOUCHPAD */
GPIO(KEYBOARD_BACKLIGHT, PIN(B, 9), GPIO_INPUT)
@@ -97,6 +101,8 @@ ALTERNATE(PIN_MASK(B, 0x0c00), 1, MODULE_I2C, 0) /* I2C CHARGER: PB10/11 GPIO_O
ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI_MASTER, 0) /* SPI MASTER:PB3/4/5 */
#endif
+#ifdef CONFIG_I2C
ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C TOUCHPAD: PB6/7 GPIO_ODR_HIGH */
+#endif
ALTERNATE(PIN_MASK(B, 0x0200), 2, MODULE_PWM, GPIO_PULL_DOWN) /* PWM: PB9 */
diff --git a/board/hammer/variants.h b/board/hammer/variants.h
index 58c320a113..dde655144d 100644
--- a/board/hammer/variants.h
+++ b/board/hammer/variants.h
@@ -15,6 +15,8 @@
/* USB ID */
#ifdef BOARD_HAMMER
#define CONFIG_USB_PID 0x5022
+#elif defined(BOARD_MAGNEMITE)
+#define CONFIG_USB_PID 0x503d
#elif defined(BOARD_MASTERBALL)
#define CONFIG_USB_PID 0x503c
#elif defined(BOARD_STAFF)
@@ -38,6 +40,8 @@
#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X 1018 /* tenth of mm */
#define CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y 566 /* tenth of mm */
#define CONFIG_TOUCHPAD_VIRTUAL_SIZE (48*1024)
+#elif defined(BOARD_MAGNEMITE)
+#define HAS_NO_TOUCHPAD
#elif defined(BOARD_MASTERBALL)
#define HAS_I2C_TOUCHPAD
/* TODO(b:138422450): Insert correct dimensions. */
diff --git a/board/magnemite b/board/magnemite
new file mode 120000
index 0000000000..7f4a914148
--- /dev/null
+++ b/board/magnemite
@@ -0,0 +1 @@
+hammer \ No newline at end of file
diff --git a/util/flash_ec b/util/flash_ec
index 0f2d09792d..f847eb020a 100755
--- a/util/flash_ec
+++ b/util/flash_ec
@@ -64,6 +64,7 @@ BOARDS_STM32=(
glados_pd
hatch_fp
jerry
+ magnemite
masterball
minimuffin
nami_fp