diff options
Diffstat (limited to 'board')
-rw-r--r-- | board/hammer/board.c | 4 | ||||
-rw-r--r-- | board/hammer/board.h | 13 | ||||
-rw-r--r-- | board/hammer/ec.tasklist | 8 | ||||
-rw-r--r-- | board/hammer/gpio.inc | 6 | ||||
-rw-r--r-- | board/hammer/variants.h | 4 | ||||
l--------- | board/magnemite | 1 |
6 files changed, 35 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 |