This allows to drive MCU RST lines or similar with the ch341a
during a flashrom run. CS1 is active low and CS2 is active high;
note that the tristate state is a weak pullup, thus using
CS2 would need an external pull-down.

Signed-off-by: Urja Rannikko <[email protected]>
---
 ch341a_spi.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/ch341a_spi.c b/ch341a_spi.c
index 6eb2804..7e5d577 100644
--- a/ch341a_spi.c
+++ b/ch341a_spi.c
@@ -303,8 +303,12 @@ static uint8_t swap_byte(uint8_t x)
 static int32_t enable_pins(bool enable)
 {
        uint8_t buf[] = {
+               /* We provide CS1 as "nACT" and CS2 as "ACT" during operation 
for ISP
+                * designs to drive eg. reset lines, meaning CS1 is driven low 
during
+                * flashrom run and CS2 high. Note that the tristate state is a 
weak
+                * pullup, thus using CS2 needs an external pull-down. */
                CH341A_CMD_UIO_STREAM,
-               CH341A_CMD_UIO_STM_OUT | 0x37, // CS high (all of them), SCK=0, 
DOUT*=1
+               CH341A_CMD_UIO_STM_OUT | (enable ? 0x35 : 0x33), // SCK=0, 
DOUT*=1
                CH341A_CMD_UIO_STM_DIR | (enable ? 0x3F : 0x00), // Interface 
output enable / disable
                CH341A_CMD_UIO_STM_END,
        };
@@ -327,11 +331,11 @@ static void pluck_cs(uint8_t *ptr)
                stored_delay_us = 0;
        }
        *ptr++ = CH341A_CMD_UIO_STREAM;
-       *ptr++ = CH341A_CMD_UIO_STM_OUT | 0x37; /* deasserted */
+       *ptr++ = CH341A_CMD_UIO_STM_OUT | 0x35; /* deasserted */
        int i;
        for (i = 0; i < delay_cnt; i++)
-               *ptr++ = CH341A_CMD_UIO_STM_OUT | 0x37; /* "delay" */
-       *ptr++ = CH341A_CMD_UIO_STM_OUT | 0x36; /* asserted */
+               *ptr++ = CH341A_CMD_UIO_STM_OUT | 0x35; /* "delay" */
+       *ptr++ = CH341A_CMD_UIO_STM_OUT | 0x34; /* asserted */
        *ptr++ = CH341A_CMD_UIO_STM_END;
 }
 
-- 
2.7.1


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to