mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-15 00:56:22 +00:00
nautilus: Support tristate board id strapping pin
With 3 binary strapping pins, we only have 7 available board ids: 000, 001, 010, 011, 100, 101, 110, 111. Let's make the MSB of board id tristate. So we can have 4 more board ids to use: Z00, Z01, Z10, Z11. BUG=b:77731277 BRANCH=poppy TEST=build nautilus Change-Id: I7aebb89437d2ccb9eea6c477155b25d964983232 Signed-off-by: Philip Chen <philipchen@google.com> Reviewed-on: https://chromium-review.googlesource.com/1000875 Commit-Ready: Philip Chen <philipchen@chromium.org> Tested-by: Philip Chen <philipchen@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
This commit is contained in:
@@ -580,6 +580,34 @@ void board_hibernate(void)
|
||||
;
|
||||
}
|
||||
|
||||
int board_get_version(void)
|
||||
{
|
||||
static int ver = -1;
|
||||
uint8_t id3;
|
||||
|
||||
if (ver != -1)
|
||||
return ver;
|
||||
|
||||
ver = 0;
|
||||
|
||||
/* First 2 strappings are binary. */
|
||||
if (gpio_get_level(GPIO_BOARD_VERSION1))
|
||||
ver |= 0x01;
|
||||
if (gpio_get_level(GPIO_BOARD_VERSION2))
|
||||
ver |= 0x02;
|
||||
|
||||
/*
|
||||
* The 3rd strapping pin is tristate.
|
||||
* id3 = 2 if Hi-Z, id3 = 1 if high, and id3 = 0 if low.
|
||||
*/
|
||||
id3 = gpio_get_ternary(GPIO_BOARD_VERSION3);
|
||||
ver |= id3 * 0x04;
|
||||
|
||||
CPRINTS("Board ID = %d", ver);
|
||||
|
||||
return ver;
|
||||
}
|
||||
|
||||
/* Lid Sensor mutex */
|
||||
static struct mutex g_lid_mutex;
|
||||
static struct mutex g_base_mutex;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#define CONFIG_ADC
|
||||
#define CONFIG_BACKLIGHT_LID
|
||||
#define CONFIG_BOARD_VERSION
|
||||
#define CONFIG_BOARD_SPECIFIC_VERSION
|
||||
#define CONFIG_BOARD_FORCE_RESET_PIN
|
||||
#define CONFIG_CASE_CLOSED_DEBUG_EXTERNAL
|
||||
#define CONFIG_DPTF
|
||||
|
||||
Reference in New Issue
Block a user