summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/tcc780x/sd-tcc780x.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/firmware/target/arm/tcc780x/sd-tcc780x.c b/firmware/target/arm/tcc780x/sd-tcc780x.c
index bb426d8..222bb88 100644
--- a/firmware/target/arm/tcc780x/sd-tcc780x.c
+++ b/firmware/target/arm/tcc780x/sd-tcc780x.c
@@ -50,6 +50,7 @@
#define EC_TRAN_WRITE_ENTRY 9
#define EC_TRAN_WRITE_EXIT 10
#define EC_COMMAND 11
+#define EC_WRITE_PROTECT 12
/* for compatibility */
static long last_disk_activity = -1;
@@ -536,6 +537,12 @@ int sd_write_sectors(IF_MD2(int card_no,) unsigned long start, int count,
const unsigned char *buf_end;
bool aligned;
+ if ((card_no == CARD_NUM_SLOT) && (GPIOA & 0x10))
+ {
+ /* write protect tab set */
+ return -EC_WRITE_PROTECT;
+ }
+
mutex_lock(&sd_mtx);
sd_enable(true);
led(true);