google/gru: Support Nefario rev0

Do not assert GPIO1_B3 otherwise BT would be disabled on Nefario.
Also, remove DVS support for CENTERLOGIC.

BUG=b:64702054, b:63537905
TEST=build coreboot

Change-Id: I350db2c080f2e41ae56413f5f895557978ef0ba8
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://review.coreboot.org/21176
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Philip Chen 2017-08-23 18:02:25 -07:00 committed by Julius Werner
parent 662cf7f8a6
commit a0618201d4
5 changed files with 30 additions and 10 deletions

View File

@ -25,6 +25,16 @@ config GRU_HAS_TPM2
default n if BOARD_GOOGLE_KEVIN default n if BOARD_GOOGLE_KEVIN
default y default y
config GRU_HAS_CENTERLOG_PWM
bool
default y if BOARD_GOOGLE_GRU || BOARD_GOOGLE_KEVIN || BOARD_GOOGLE_BOB
default n
config GRU_HAS_WLAN_RESET
bool
default y if BOARD_GOOGLE_GRU || BOARD_GOOGLE_KEVIN || BOARD_GOOGLE_BOB
default n
config BOARD_SPECIFIC_OPTIONS config BOARD_SPECIFIC_OPTIONS
def_bool y def_bool y
select BOARD_ID_AUTO select BOARD_ID_AUTO

View File

@ -33,7 +33,6 @@
#define GPIO_P30V_EN dead_code_t(gpio_t, "PP3000 doesn't exist on Scarlet") #define GPIO_P30V_EN dead_code_t(gpio_t, "PP3000 doesn't exist on Scarlet")
#define GPIO_TP_RST_L dead_code_t(gpio_t, "don't need TP_RST_L on Scarlet") #define GPIO_TP_RST_L dead_code_t(gpio_t, "don't need TP_RST_L on Scarlet")
#define GPIO_TPM_IRQ GPIO(1, C, 1) #define GPIO_TPM_IRQ GPIO(1, C, 1)
#define GPIO_WLAN_RST_L dead_code_t(gpio_t, "no WLAN reset on Scarlet in FW")
#define GPIO_WP GPIO(0, B, 5) #define GPIO_WP GPIO(0, B, 5)
#else #else
#define GPIO_BACKLIGHT GPIO(1, C, 1) #define GPIO_BACKLIGHT GPIO(1, C, 1)
@ -44,10 +43,15 @@
#define GPIO_P30V_EN GPIO(0, B, 4) #define GPIO_P30V_EN GPIO(0, B, 4)
#define GPIO_TP_RST_L GPIO(3, B, 4) /* may also be an I2C pull-up enable */ #define GPIO_TP_RST_L GPIO(3, B, 4) /* may also be an I2C pull-up enable */
#define GPIO_TPM_IRQ GPIO(0, A, 5) #define GPIO_TPM_IRQ GPIO(0, A, 5)
#define GPIO_WLAN_RST_L GPIO(1, B, 3)
#define GPIO_WP GPIO(1, C, 2) #define GPIO_WP GPIO(1, C, 2)
#endif #endif
#if IS_ENABLED(CONFIG_GRU_HAS_WLAN_RESET)
#define GPIO_WLAN_RST_L GPIO(1, B, 3)
#else
#define GPIO_WLAN_RST_L dead_code_t(gpio_t, "no WLAN reset on this board in FW")
#endif
void setup_chromeos_gpios(void); void setup_chromeos_gpios(void);
#endif /* ! __COREBOOT_SRC_MAINBOARD_GOOGLE_GRU_BOARD_H */ #endif /* ! __COREBOOT_SRC_MAINBOARD_GOOGLE_GRU_BOARD_H */

View File

@ -44,7 +44,7 @@ static void configure_touchpad(void)
/* /*
* Wifi's PDN/RST line is pulled down by its (unpowered) voltage rails, but * Wifi's PDN/RST line is pulled down by its (unpowered) voltage rails, but
* this reset pin is pulled up by default. Let's drive it low as early as we * this reset pin is pulled up by default. Let's drive it low as early as we
* can. Scarlet uses a different WiFi chip that doesn't have this pin anymore. * can. This only applies to boards with Marvell 8997 WiFi.
*/ */
static void assert_wifi_reset(void) static void assert_wifi_reset(void)
{ {
@ -349,8 +349,9 @@ static void mainboard_init(device_t dev)
if (display_init_required()) if (display_init_required())
configure_display(); configure_display();
setup_usb(0); setup_usb(0);
if (IS_ENABLED(CONFIG_GRU_HAS_WLAN_RESET))
assert_wifi_reset();
if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) { if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {
assert_wifi_reset(); /* Scarlet: no WIFI_PD# line */
configure_touchpad(); /* Scarlet: works differently */ configure_touchpad(); /* Scarlet: works differently */
setup_usb(1); /* Scarlet: only one USB port */ setup_usb(1); /* Scarlet: only one USB port */
register_gpio_suspend(); /* Scarlet: all EC-controlled */ register_gpio_suspend(); /* Scarlet: all EC-controlled */

View File

@ -40,7 +40,7 @@ int kevin6_pwm_design_voltage[][2] = {
[PWM_REGULATOR_CENTERLOG] = {8001, 10497} [PWM_REGULATOR_CENTERLOG] = {8001, 10497}
}; };
/* Applies for Gru rev2+ and Bob. */ /* Applies for Gru rev2+, Bob, and Nefario. */
int pwm_design_voltage[][2] = { int pwm_design_voltage[][2] = {
[PWM_REGULATOR_GPU] = {7864, 12177}, [PWM_REGULATOR_GPU] = {7864, 12177},
[PWM_REGULATOR_BIG] = {8001, 13022}, [PWM_REGULATOR_BIG] = {8001, 13022},
@ -58,12 +58,15 @@ int scarlet_pwm_design_voltage[][2] = {
int pwm_enum_to_pwm_number[] = { int pwm_enum_to_pwm_number[] = {
[PWM_REGULATOR_GPU] = 0, [PWM_REGULATOR_GPU] = 0,
[PWM_REGULATOR_LIT] = 2, [PWM_REGULATOR_LIT] = 2,
#if IS_ENABLED(CONFIG_GRU_HAS_CENTERLOG_PWM)
[PWM_REGULATOR_CENTERLOG] = 3,
#else
[PWM_REGULATOR_CENTERLOG] = -1,
#endif
#if IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET) #if IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)
[PWM_REGULATOR_BIG] = 3, [PWM_REGULATOR_BIG] = 3,
[PWM_REGULATOR_CENTERLOG] = -1, /* fixed regulator on Scarlet */
#else #else
[PWM_REGULATOR_BIG] = 1, [PWM_REGULATOR_BIG] = 1,
[PWM_REGULATOR_CENTERLOG] = 3,
#endif #endif
}; };

View File

@ -41,11 +41,13 @@ static void init_dvs_outputs(void)
pwm_regulator_configure(PWM_REGULATOR_GPU, 900); pwm_regulator_configure(PWM_REGULATOR_GPU, 900);
pwm_regulator_configure(PWM_REGULATOR_BIG, 900); pwm_regulator_configure(PWM_REGULATOR_BIG, 900);
/* Kevin's logic rail has some ripple, so up the voltage a bit. Scarlet /*
uses a fixed 900mV regulator for centerlogic. */ * Kevin's logic rail has some ripple, so up the voltage a bit. Newer
* boards use a fixed 900mV regulator for centerlogic.
*/
if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN)) if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN))
pwm_regulator_configure(PWM_REGULATOR_CENTERLOG, 925); pwm_regulator_configure(PWM_REGULATOR_CENTERLOG, 925);
else if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) else if (IS_ENABLED(CONFIG_GRU_HAS_CENTERLOG_PWM))
pwm_regulator_configure(PWM_REGULATOR_CENTERLOG, 900); pwm_regulator_configure(PWM_REGULATOR_CENTERLOG, 900);
/* Allow time for the regulators to settle */ /* Allow time for the regulators to settle */