summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhanu Prakash Maiya <bhanumaiya@google.com>2021-07-02 23:58:47 -0700
committerCommit Bot <commit-bot@chromium.org>2021-07-14 19:05:31 +0000
commitb4125247f556650771bf6c92ccf612de382ad221 (patch)
tree5eb2c9b63dab42e8005bddcac23903ef29084ab5
parentb5b91695aa334fa26a1ad135beba30374e5adae5 (diff)
downloadchrome-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.c20
-rw-r--r--board/nocturne_fp/gpio.inc2
-rw-r--r--board/nocturne_fp/gpio_rw.inc1
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)