google/deltaur,drallion,sarien: Refactor ChromeOS GPIOs
Low-level GPIOs should not depend on late cros_gpios that should be guarded with CHROMEOS and implemented for the purpose of ACPI \OIPG package generation. Change-Id: Ibe708330504bc819e312eddaf5dfe4016cda21a1 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59004 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
4bcc275d71
commit
09a66ace7e
|
@ -33,24 +33,14 @@ void fill_lb_gpios(struct lb_gpios *gpios)
|
|||
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
||||
}
|
||||
|
||||
static int cros_get_gpio_value(int type)
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
const struct cros_gpio *cros_gpios;
|
||||
size_t i, num_gpios = 0;
|
||||
return gpio_get(GPIO_PCH_WP);
|
||||
}
|
||||
|
||||
cros_gpios = variant_cros_gpios(&num_gpios);
|
||||
|
||||
for (i = 0; i < num_gpios; i++) {
|
||||
const struct cros_gpio *gpio = &cros_gpios[i];
|
||||
if (gpio->type == type) {
|
||||
int state = gpio_get(gpio->gpio_num);
|
||||
if (gpio->polarity == CROS_GPIO_ACTIVE_LOW)
|
||||
return !state;
|
||||
else
|
||||
return state;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
static bool raw_get_recovery_mode_switch(void)
|
||||
{
|
||||
return !gpio_get(GPIO_REC_MODE);
|
||||
}
|
||||
|
||||
void mainboard_chromeos_acpi_generate(void)
|
||||
|
@ -63,11 +53,6 @@ void mainboard_chromeos_acpi_generate(void)
|
|||
chromeos_acpi_gpio_generate(cros_gpios, num_gpios);
|
||||
}
|
||||
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
return cros_get_gpio_value(CROS_GPIO_WP);
|
||||
}
|
||||
|
||||
int get_recovery_mode_switch(void)
|
||||
{
|
||||
static enum rec_mode_state saved_rec_mode = REC_MODE_UNINITIALIZED;
|
||||
|
@ -93,7 +78,7 @@ int get_recovery_mode_switch(void)
|
|||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Read state from the GPIO controlled by servo. */
|
||||
if (cros_get_gpio_value(CROS_GPIO_REC))
|
||||
if (raw_get_recovery_mode_switch())
|
||||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Store the state in case this is called again in verstage. */
|
||||
|
|
|
@ -31,24 +31,14 @@ void fill_lb_gpios(struct lb_gpios *gpios)
|
|||
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
||||
}
|
||||
|
||||
static int cros_get_gpio_value(int type)
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
const struct cros_gpio *cros_gpios;
|
||||
size_t i, num_gpios = 0;
|
||||
return gpio_get(GPP_E15);
|
||||
}
|
||||
|
||||
cros_gpios = variant_cros_gpios(&num_gpios);
|
||||
|
||||
for (i = 0; i < num_gpios; i++) {
|
||||
const struct cros_gpio *gpio = &cros_gpios[i];
|
||||
if (gpio->type == type) {
|
||||
int state = gpio_get(gpio->gpio_num);
|
||||
if (gpio->polarity == CROS_GPIO_ACTIVE_LOW)
|
||||
return !state;
|
||||
else
|
||||
return state;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
static bool raw_get_recovery_mode_switch(void)
|
||||
{
|
||||
return !gpio_get(GPP_E8);
|
||||
}
|
||||
|
||||
void mainboard_chromeos_acpi_generate(void)
|
||||
|
@ -61,11 +51,6 @@ void mainboard_chromeos_acpi_generate(void)
|
|||
chromeos_acpi_gpio_generate(cros_gpios, num_gpios);
|
||||
}
|
||||
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
return cros_get_gpio_value(CROS_GPIO_WP);
|
||||
}
|
||||
|
||||
int get_recovery_mode_switch(void)
|
||||
{
|
||||
static enum rec_mode_state saved_rec_mode = REC_MODE_UNINITIALIZED;
|
||||
|
@ -91,7 +76,7 @@ int get_recovery_mode_switch(void)
|
|||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Read state from the GPIO controlled by servo. */
|
||||
if (cros_get_gpio_value(CROS_GPIO_REC))
|
||||
if (raw_get_recovery_mode_switch())
|
||||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Store the state in case this is called again in verstage. */
|
||||
|
|
|
@ -29,24 +29,14 @@ void fill_lb_gpios(struct lb_gpios *gpios)
|
|||
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
||||
}
|
||||
|
||||
static int cros_get_gpio_value(int type)
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
const struct cros_gpio *cros_gpios;
|
||||
size_t i, num_gpios = 0;
|
||||
return gpio_get(GPP_E15);
|
||||
}
|
||||
|
||||
cros_gpios = variant_cros_gpios(&num_gpios);
|
||||
|
||||
for (i = 0; i < num_gpios; i++) {
|
||||
const struct cros_gpio *gpio = &cros_gpios[i];
|
||||
if (gpio->type == type) {
|
||||
int state = gpio_get(gpio->gpio_num);
|
||||
if (gpio->polarity == CROS_GPIO_ACTIVE_LOW)
|
||||
return !state;
|
||||
else
|
||||
return state;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
static bool raw_get_recovery_mode_switch(void)
|
||||
{
|
||||
return !gpio_get(GPP_E8);
|
||||
}
|
||||
|
||||
void mainboard_chromeos_acpi_generate(void)
|
||||
|
@ -59,11 +49,6 @@ void mainboard_chromeos_acpi_generate(void)
|
|||
chromeos_acpi_gpio_generate(cros_gpios, num_gpios);
|
||||
}
|
||||
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
return cros_get_gpio_value(CROS_GPIO_WP);
|
||||
}
|
||||
|
||||
int get_recovery_mode_switch(void)
|
||||
{
|
||||
static enum rec_mode_state saved_rec_mode = REC_MODE_UNINITIALIZED;
|
||||
|
@ -89,7 +74,7 @@ int get_recovery_mode_switch(void)
|
|||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Read state from the GPIO controlled by servo. */
|
||||
if (cros_get_gpio_value(CROS_GPIO_REC))
|
||||
if (raw_get_recovery_mode_switch())
|
||||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Store the state in case this is called again in verstage. */
|
||||
|
|
Loading…
Reference in New Issue