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:
		
				
					committed by
					
						
						Julius Werner
					
				
			
			
				
	
			
			
			
						parent
						
							662cf7f8a6
						
					
				
				
					commit
					a0618201d4
				
			@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user