Browse Source

STM32F7: Fix board_init() to pull up unused pins.

Keir Fraser 5 years ago
parent
commit
1159fba8ab
4 changed files with 15 additions and 21 deletions
  1. 14 3
      src/board.c
  2. 0 3
      src/floppy.c
  3. 1 1
      src/main.c
  4. 0 14
      src/usb/hw_f1.c

+ 14 - 3
src/board.c

@@ -23,9 +23,20 @@ static void gpio_pull_up_pins(GPIO gpio, uint16_t mask)
 void board_init(void)
 {
     /* Pull up all unused pins. */
-    gpio_pull_up_pins(gpioa, 0xe1fe); /* PA1-8,13-15 */
-    gpio_pull_up_pins(gpiob, 0x0027); /* PB0-2,5 */
-    gpio_pull_up_pins(gpioc, 0xffff); /* PC0-15 */
+    if (STM32F == 1) {
+        gpio_pull_up_pins(gpioa, 0xe1fe); /* PA1-8,13-15 */
+        gpio_pull_up_pins(gpiob, 0x0027); /* PB0-2,5 */
+        gpio_pull_up_pins(gpioc, 0xffff); /* PC0-15 */
+    } else if (STM32F == 7) {
+        gpio_pull_up_pins(gpioa, 0x9930); /* PA4-5,8,11-12,15 */
+        gpio_pull_up_pins(gpiob, 0x23f8); /* PB3-9,13 */
+        gpio_pull_up_pins(gpioc, 0xffe7); /* PC0-2,5-15 */
+    }
+
+#ifdef NDEBUG
+    /* Pull up unused debug pins (A9,A10 = serial console). */
+    gpio_pull_up_pins(gpioa, (1u<<9) | (1u<<10));
+#endif
 }
 
 /*

+ 0 - 3
src/floppy.c

@@ -882,9 +882,6 @@ void floppy_process(void)
         drive_motor(FALSE);
         drive_select(FALSE);
         auto_off.armed = FALSE;
-        //gpio_write_pin(gpioa, 0, LOW);
-        //delay_ms(100); /* force disconnect */
-        //gpio_write_pin(gpioa, 0, HIGH);
     }
 
     switch (floppy_state) {

+ 1 - 1
src/main.c

@@ -34,7 +34,7 @@ int main(void)
     time_init();
     console_init();
     console_crash_on_input();
-//    board_init();
+    board_init();
 
     printk("\n** Greaseweazle v%u.%u\n", fw_major, fw_minor);
     printk("** Keir Fraser <keir.xen@gmail.com>\n");

+ 0 - 14
src/usb/hw_f1.c

@@ -357,20 +357,6 @@ void usb_process(void)
         printk("[RESET]\n");
         handle_reset();
     }
-
-    /* We ignore all the below... */
-
-    if (istr & USB_ISTR_SUSP) {
-//        printk("[SUSP]\n");
-    }
-
-    if (istr & USB_ISTR_SOF) {
-//        printk("[SOF]\n");
-    }
-
-    if (istr & USB_ISTR_ESOF) {
-//        printk("[ESOF]\n");
-    }
 }
 
 /*