diff options
-rw-r--r-- | baseboard/octopus/baseboard.c | 4 | ||||
-rw-r--r-- | baseboard/octopus/baseboard.h | 2 | ||||
-rw-r--r-- | baseboard/octopus/variant_ec_npcx796fb.c | 11 | ||||
-rw-r--r-- | board/bip/board.h | 4 | ||||
-rw-r--r-- | board/bip/gpio.inc | 3 | ||||
-rw-r--r-- | board/yorp/board.h | 5 | ||||
-rw-r--r-- | board/yorp/gpio.inc | 5 |
7 files changed, 33 insertions, 1 deletions
diff --git a/baseboard/octopus/baseboard.c b/baseboard/octopus/baseboard.c index cd14adb6d3..b358864d59 100644 --- a/baseboard/octopus/baseboard.c +++ b/baseboard/octopus/baseboard.c @@ -135,6 +135,8 @@ static void baseboard_chipset_resume(void) * LID_OPEN connection in hardware. */ gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1); + /* Enable the keyboard backlight */ + gpio_set_level(GPIO_KB_BL_PWR_EN, 1); } DECLARE_HOOK(HOOK_CHIPSET_RESUME, baseboard_chipset_resume, HOOK_PRIO_DEFAULT); @@ -146,6 +148,8 @@ static void baseboard_chipset_suspend(void) * LID_OPEN connection in hardware. */ gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0); + /* Disable the keyboard backlight */ + gpio_set_level(GPIO_KB_BL_PWR_EN, 0); } DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, baseboard_chipset_suspend, HOOK_PRIO_DEFAULT); diff --git a/baseboard/octopus/baseboard.h b/baseboard/octopus/baseboard.h index 0b0018f6f0..a603690009 100644 --- a/baseboard/octopus/baseboard.h +++ b/baseboard/octopus/baseboard.h @@ -71,6 +71,7 @@ #define CONFIG_CROS_BOARD_INFO #define CONFIG_BOARD_VERSION_CBI #define CONFIG_LOW_POWER_IDLE +#define CONFIG_PWM /* * We don't need CONFIG_BACKLIGHT_LID since hardware AND's LID_OPEN and AP @@ -230,6 +231,7 @@ #define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_KEYBOARD_COL2_INVERTED #define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2 +#define CONFIG_PWM_KBLIGHT #ifndef __ASSEMBLER__ diff --git a/baseboard/octopus/variant_ec_npcx796fb.c b/baseboard/octopus/variant_ec_npcx796fb.c index 6c839cbb10..f00d39e8d6 100644 --- a/baseboard/octopus/variant_ec_npcx796fb.c +++ b/baseboard/octopus/variant_ec_npcx796fb.c @@ -7,9 +7,11 @@ #include "charge_manager.h" #include "chipset.h" +#include "config.h" #include "gpio.h" #include "i2c.h" #include "power.h" +#include "pwm_chip.h" #include "usb_pd.h" #include "usbc_ppc.h" #include "util.h" @@ -27,6 +29,15 @@ const struct i2c_port_t i2c_ports[] = { }; const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); +/******************************************************************************/ +/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */ +const struct pwm_t pwm_channels[] = { + [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 100 }, +}; +BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); + +/******************************************************************************/ +/* Board power callback/hooks */ #define HIBERNATE_VBUS_LEVEL_MV 5000 void board_hibernate(void) diff --git a/board/bip/board.h b/board/bip/board.h index 6db1145b3a..cf033b26bd 100644 --- a/board/bip/board.h +++ b/board/bip/board.h @@ -16,6 +16,10 @@ /* Optional features */ #define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */ +/* Hardware for proto bip does not support ec keyboard backlight control. */ +#undef CONFIG_PWM +#undef CONFIG_PWM_KBLIGHT + #ifndef __ASSEMBLER__ #include "gpio_signal.h" diff --git a/board/bip/gpio.inc b/board/bip/gpio.inc index 7e66e23afc..9b984eb480 100644 --- a/board/bip/gpio.inc +++ b/board/bip/gpio.inc @@ -97,6 +97,9 @@ GPIO(USB_C1_BC12_VBUS_ON, PIN(J, 5), GPIO_OUT_LOW) /* C1 BC1.2 Power */ GPIO(USB_C1_PD_RST_ODL, PIN(L, 7), GPIO_ODR_HIGH) /* C1 PD Reset */ GPIO(USB2_OTG_ID, PIN(I, 2), GPIO_OUT_LOW) /* OTG ID */ +/* Not implemented in hardware yet */ +UNIMPLEMENTED(KB_BL_PWR_EN) + /* Alternate functions GPIO definitions */ /* Cr50 requires no pull-ups on UART pins. */ ALTERNATE(PIN_MASK(B, 0x03), 0, MODULE_UART, 0) /* UART from EC to Servo */ diff --git a/board/yorp/board.h b/board/yorp/board.h index 9cd7e65909..aef8b4a111 100644 --- a/board/yorp/board.h +++ b/board/yorp/board.h @@ -66,6 +66,11 @@ enum temp_sensor_id { TEMP_SENSOR_COUNT }; +enum pwm_channel { + PWM_CH_KBLIGHT, + PWM_CH_COUNT +}; + /* Motion sensors */ enum sensor_id { LID_ACCEL, diff --git a/board/yorp/gpio.inc b/board/yorp/gpio.inc index 8ce745de0b..4a00805cad 100644 --- a/board/yorp/gpio.inc +++ b/board/yorp/gpio.inc @@ -103,7 +103,6 @@ GPIO(EN_USB_A_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0/A1 5V Charging */ GPIO(USB2_OTG_ID, PIN(A, 0), GPIO_OUT_LOW) /* OTG ID */ GPIO(USB_A_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0/A1 1.5A Charging */ /* TODO(b/74254366): Break out A1 signals once they are there in HW */ -/* USB_C0_PD_RST_L isn't connected to PIN(6,2) since ANX TCPC doesn't have reset */ GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */ GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */ GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */ @@ -120,6 +119,9 @@ GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */ GPIO(BAT_LED_ORANGE_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */ GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */ +/* Keyboard Backlight */ +GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW) + /* Keyboard pins */ ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */ ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */ @@ -140,3 +142,4 @@ ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */ ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */ ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4: ADC_USB_C0_VBUS */ ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9: ADC_USB_C1_VBUS */ +ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */ |