storm: supply vboot GPIO settings in coreboot table
Storm provides three real and two fake gpios. To keep things simple,
define them all as active low and provide appropriate values for the
fake ones.
BUG=chrome-os-partner:30705
TEST=with the appropriate depthcharge change booted proto0, observed
appropriate behavior following the dev switch setting
Change-Id: I248b90ee06d226a223b6fc0993f209acdd58c77d
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: d48d1dcc88
Original-Change-Id: Icb7fb55949fa97ead9d19f0da76392ee63bbb5b8
Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/210922
Reviewed-on: http://review.coreboot.org/9117
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
d9becd2183
commit
c6d30405f2
1 changed files with 28 additions and 0 deletions
|
|
@ -19,7 +19,11 @@
|
|||
|
||||
#include <arch/cache.h>
|
||||
#include <boot/coreboot_tables.h>
|
||||
#include <console/console.h>
|
||||
#include <device/device.h>
|
||||
#include <delay.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <soc/qualcomm/ipq806x/include/clock.h>
|
||||
#include <soc/qualcomm/ipq806x/include/gpio.h>
|
||||
#include <soc/qualcomm/ipq806x/include/usb.h>
|
||||
|
|
@ -93,3 +97,27 @@ void lb_board(struct lb_header *header)
|
|||
dma->range_start = CONFIG_DRAM_DMA_START;
|
||||
dma->range_size = CONFIG_DRAM_DMA_SIZE;
|
||||
}
|
||||
|
||||
static int read_gpio(gpio_t gpio_num)
|
||||
{
|
||||
gpio_tlmm_config_set(gpio_num, GPIO_FUNC_DISABLE,
|
||||
GPIO_NO_PULL, GPIO_2MA, GPIO_DISABLE);
|
||||
udelay(10); /* Should be enough to settle. */
|
||||
return gpio_get_in_value(gpio_num);
|
||||
}
|
||||
|
||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
{
|
||||
struct lb_gpio *gpio;
|
||||
const int GPIO_COUNT = 5;
|
||||
|
||||
gpios->size = sizeof(*gpios) + (GPIO_COUNT * sizeof(struct lb_gpio));
|
||||
gpios->count = GPIO_COUNT;
|
||||
|
||||
gpio = gpios->gpios;
|
||||
fill_lb_gpio(gpio++, 15, ACTIVE_LOW, "developer", read_gpio(15));
|
||||
fill_lb_gpio(gpio++, 16, ACTIVE_LOW, "recovery", read_gpio(16));
|
||||
fill_lb_gpio(gpio++, 17, ACTIVE_LOW, "write protect", read_gpio(17));
|
||||
fill_lb_gpio(gpio++, -1, ACTIVE_LOW, "power", 1);
|
||||
fill_lb_gpio(gpio++, -1, ACTIVE_LOW, "lid", 0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue