diff options
author | Bhanu Prakash Maiya <bhanumaiya@google.com> | 2021-07-02 23:58:47 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-14 19:05:31 +0000 |
commit | b4125247f556650771bf6c92ccf612de382ad221 (patch) | |
tree | 5eb2c9b63dab42e8005bddcac23903ef29084ab5 | |
parent | b5b91695aa334fa26a1ad135beba30374e5adae5 (diff) | |
download | chrome-ec-b4125247f556650771bf6c92ccf612de382ad221.tar.gz |
Dartmonkey: Implement get_fp_transport_type
This patch reads GPIO_TRANSPORT_SEL in get_fp_transport_type() to get
selected transport on board
BRANCH=none
BUG=b:192713372
TEST=1. make BOARD=nocturne_fp -j
2. On Icetower check logs
3. fpmcu console logs:
```
[1.099996 UART initialized after sysjump]
[Image: RW, dartmonkey_v2.0.9475+375c295d0
cryptoc:v1.9308_26_0.9-3830fff private:v0.0.123-fd096e4
fpc:v0.0.119-cd5a676 2021-07-06 13:03:07 bhanumaiya@bhanumaiya2]
[Reset cause: reset-pin power-on soft sysjump ap-off]
[1.100221 Inits done]
[1.100278 WARNING: Reset flags power-on + ap-off were forged.]
[1.100380 TRANSPORT_SEL: UART]
[1.100446 TRANSPORT_SEL: UART]
```
Signed-off-by: Bhanu Prakash Maiya <bhanumaiya@chromium.org>
Change-Id: I8ed933ce7a4c8b922d9c2da75b32ba4838e10e54
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3004293
Auto-Submit: Bhanu Prakash Maiya <bhanumaiya@google.com>
Reviewed-by: Jora Jacobi <jora@google.com>
Reviewed-by: Craig Hesling <hesling@chromium.org>
Reviewed-by: Bhanu Prakash Maiya <bhanumaiya@google.com>
Commit-Queue: Bhanu Prakash Maiya <bhanumaiya@google.com>
Tested-by: Bhanu Prakash Maiya <bhanumaiya@google.com>
-rw-r--r-- | board/nocturne_fp/fpsensor_detect.c | 20 | ||||
-rw-r--r-- | board/nocturne_fp/gpio.inc | 2 | ||||
-rw-r--r-- | board/nocturne_fp/gpio_rw.inc | 1 |
3 files changed, 21 insertions, 2 deletions
diff --git a/board/nocturne_fp/fpsensor_detect.c b/board/nocturne_fp/fpsensor_detect.c index 5a4b95e64c..638b5fbfe0 100644 --- a/board/nocturne_fp/fpsensor_detect.c +++ b/board/nocturne_fp/fpsensor_detect.c @@ -4,8 +4,26 @@ */ #include "fpsensor_detect.h" +#include "gpio.h" +#include "timer.h" enum fp_transport_type get_fp_transport_type(void) { - return FP_TRANSPORT_TYPE_SPI; + enum fp_transport_type ret; + + gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 1); + usleep(1); + switch (gpio_get_level(GPIO_TRANSPORT_SEL)) { + case 0: + ret = FP_TRANSPORT_TYPE_UART; + break; + case 1: + ret = FP_TRANSPORT_TYPE_SPI; + break; + default: + ret = FP_TRANSPORT_TYPE_UNKNOWN; + break; + } + gpio_set_level(GPIO_DIVIDER_HIGHSIDE, 0); + return ret; } diff --git a/board/nocturne_fp/gpio.inc b/board/nocturne_fp/gpio.inc index 7e90ef0da4..f10ddde389 100644 --- a/board/nocturne_fp/gpio.inc +++ b/board/nocturne_fp/gpio.inc @@ -11,9 +11,11 @@ GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INPUT, spi_event) #ifndef APPLY_RESET_LOOP_FIX GPIO(WP, PIN(B, 7), GPIO_INPUT) #endif +GPIO(TRANSPORT_SEL, PIN(B, 1), GPIO_INPUT) /* Outputs */ GPIO(EC_INT_L, PIN(A, 1), GPIO_OUT_HIGH) +GPIO(DIVIDER_HIGHSIDE, PIN(B, 8), GPIO_OUT_LOW) UNIMPLEMENTED(ENTERING_RW) diff --git a/board/nocturne_fp/gpio_rw.inc b/board/nocturne_fp/gpio_rw.inc index 65036abe14..61cd3e17e2 100644 --- a/board/nocturne_fp/gpio_rw.inc +++ b/board/nocturne_fp/gpio_rw.inc @@ -30,7 +30,6 @@ GPIO(PCH_SLP_SUS_L, PIN(D, 3), GPIO_INPUT) GPIO(FP_SPI_SEL, PIN(E, 1), GPIO_INPUT | GPIO_PULL_UP) /* Outputs */ -GPIO(DIVIDER_HIGHSIDE, PIN(B, 8), GPIO_OUT_LOW) GPIO(FP_RST_ODL, PIN(E, 0), GPIO_OUT_HIGH) GPIO(SPI4_NSS, PIN(E, 4), GPIO_OUT_HIGH) GPIO(SPI4_ALT_NSS, PIN(E, 11), GPIO_OUT_HIGH) |